Je suis un débutant PHP, alors j'ai une fonction de problèmes mineurs. J'ai cette ligne de code:
<?php $ime=$_POST["ime"]; $prezime=$_POST["prezime"]; $pera="string"; if (empty($ime)||empty($prezime)){ echo "Ne radi, vrati se nazad i unesi nesto!"; } function provera($prom){ if (preg_match("/[0-9\,\.\?\>\.<\"\'\:\;\[\]\}\{\/\!\\\@\#\$\%\^\&\*\(\)\-\_\=\+\`[:space:]]/",$prom)){ echo "Nepravilan unos imena ili prezimina!"; echo $pera; } } provera($ime); provera($prezime); ?>
5 Réponses :
On dirait que vous n'avez rien dans votre variable de $ Pera. Si vous devez définir une variable à l'extérieur d'une fonction, essayez de transmettre sa valeur comme argument sur votre fonction.
function echoMyVar( $myVar ) { echo $myVar; } $p = "toto"; echoMyVar($p);
Vous ne pouvez pas utiliser Si vous souhaitez utiliser la méthode, transmettez-la sous forme de paramètre. p> $ PERA code> à l'intérieur de la méthode comme celle-là car elle n'est pas définie à l'intérieur de la portée de la méthode.
Essayé auparavant, et je suis trois erreurs maintenant 2x argument manquant 2 pour Provera () sur la ligne 14 et la variable non définie: PERA sur la ligne 11
@Mentialhead - Comme Middaparka a déjà signalé, vous devez appeler la fonction avec 2 paramètres Provera ($ IME, $ PERA)
Ceci est parce que vous utilisez la variable Voir le page manuelle PHP sur la portée variable pour plus d'informations. p> Vous pouvez résoudre ce problème en ajoutant < CODE> GLOBAL $ PERA; CODE> Dans votre fonction, bien que ce n'était pas une approche particulièrement élégante, car les variables globales sont expulsées pour des raisons trop détaillées pour aller ici. En tant que tel, il serait préférable d'accepter $ pera code> (qui n'existe que dans la portée globale) à l'intérieur d'une fonction.
$ Pera code> comme argument à votre fonction comme suit: p>
J'ai essayé d'utiliser $ Pera comme un argument de la fonction, mais je reçois maintenant des erreurs que mon deuxième argument de Provera () est manquant et que $ Pera n'est pas identifié.
@Mentialhead - Mes excuses - Lorsque vous appelez la fonction, vous devez fournir la variable en tant que paramètre. I.e.: Provera ($ IME, $ PERA); code> et
PROVERA ($ PREZIME, $ PERA); code>. J'espère que cela t'aides.
Merci beaucoup de clarifier cela.
dans votre fonction fonction Provera ($ PROM) Ajouter une ligne qui dit
global $pera;
Si votre version PHP est sur des versions 5.3 ou ultérieures, la fermeture peut être appliquée.
ref: Fonctions anonymes P> Les fermetures peuvent également hériter de variables de la portée parente. code> p>
Code> est la syntaxe PHP pour mettre en œuvre la fermeture. P>
<?php
// $ime=$_POST["ime"];
// $prezime=$_POST["prezime"];
$pera="string";
$prezime = "Ne radi, vrati se nazad i unesi nesto!";
// if (empty($ime)||empty($prezime)){
// echo "Ne radi, vrati se nazad i unesi nesto!";
// }
$provera = function ($prom) use ($pera) {
if (preg_match("/[0-9\,\.\?\>\.<\"\'\:\;\[\]\}\{\/\!\\\@\#\$\%\^\&\*\(\)\-\_\=\+\`[:space:]]/",$prom)){
echo "Nepravilan unos imena ili prezimina!";
echo $pera;
}
};
// $provera($ime);
$provera($prezime);
Pouvez-vous dépasser toute la fonction "provera"
Utilisez des fonctions de formatage afin que nous puissions voir votre code sans problème, cela facilite l'aide.
Incidemment, vous bénéficierez probablement de travailler via le Tutoriel de Manuel PHP section, Comme il couvre beaucoup de ces types de problèmes.