Undefined variable problem mit der PHP-Funktion
Ich bin ein PHP-newbie, also ich habe ein kleines problem Funktionen.
Ich habe diese Codezeile:
<?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);
?>
Sowieso, wenn ich versuche mit diesem code bekomme ich immer eine Fehlermeldung, die besagt, dass es einen Fehler in Zeile 11 (die Fett Teil des Kodex) und keine variable zurückgegeben wird. Ich vermute, dass es mich gibt, dass Fehler, da meine variable nicht innerhalb der Funktion, aber ich brauche, um zu definieren, außerhalb der Funktion, so gibt es eine Möglichkeit, dies zu tun?
können Sie vorbei ganze-Funktion "provera"
Verwenden Sie Formatierungen, Funktionen, so können wir tatsächlich sehen, Ihren code ohne Probleme, es macht es einfacher zu helfen.
Übrigens, würden Sie wahrscheinlich profitieren Sie von der Arbeit durch die PHP-Handbuch-tutorial - Abschnitt, wie es deckt eine Menge von dieser Art von Fragen.
Verwenden Sie Formatierungen, Funktionen, so können wir tatsächlich sehen, Ihren code ohne Probleme, es macht es einfacher zu helfen.
Übrigens, würden Sie wahrscheinlich profitieren Sie von der Arbeit durch die PHP-Handbuch-tutorial - Abschnitt, wie es deckt eine Menge von dieser Art von Fragen.
InformationsquelleAutor Mentalhead | 2011-05-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist, weil Sie mit der
$pera
variable (die es nur in den globalen scope) innerhalb einer Funktion.Sehen die PHP-Handbuch-Seite zum Geltungsbereich von Variablen für weitere Informationen.
Könnten Sie dieses Problem beheben, indem Sie hinzufügen
global $pera;
in Ihrer Funktion, obwohl dies nicht einen besonders eleganten Ansatz, wie Globale Variablen werden gemieden, Gründe für zu detailliert, um hier. Als solche, es wäre besser zu akzeptieren$pera
als argument, um Ihre Funktion wie folgt:Ich bitte um Entschuldigung - beim Aufruf der Funktion müssen Sie versorgen Sie die variable als parameter. also:
provera($ime, $pera);
undprovera($prezime, $pera);
. Hoffe, das hilft.Vielen Dank für die Klärung dieser.
InformationsquelleAutor John Parker
Es klingt wie Sie haben nichts in Ihrem $pera variable.
Wenn Sie definieren eine variable außerhalb einer Funktion, versuchen Sie die Weitergabe Ihrer Wert als Parameter an Ihre Funktion.
InformationsquelleAutor lvictorino
Können Sie nicht verwenden
$pera
innerhalb der Methode, denn es ist nicht definiert, die innerhalb der Methode Anwendungsbereich.Wenn Sie möchten, verwenden Sie die Methode, übergeben Sie es als parameter.
Als middaparka bereits darauf hingewiesen, sollten Sie rufen die Funktion mit 2 Parametern provera($ime $pera)
InformationsquelleAutor JohnP
In Ihrer Funktion provera($prom) fügen Sie eine Zeile besagt, dass
InformationsquelleAutor AllisonC