Ich habe eine Variable, die in Schleife eingebaut ist. Etwas wie:
%Vor%Wenn $ str="" weggelassen wird, erhalte ich eine undefinierte Variable notice, aber ich dachte, dass php eine Variable deklariert, wenn sie das erste Mal nicht deklariert wird?
Wie mache ich das richtig?
Sie erhalten die undefinierte Variable, weil Sie den Wert von sich selbst mit einem anderen Wert verketten.
Das Äquivalent von
$str = $str . "something";
Also kann es nicht sagen, was der Anfangswert ist. Es ist das Äquivalent von diesem:
$str = [undefined value] . "something";
Was ist das Ergebnis einer Verkettung von [undefined value]
und "something"
? Der Dolmetscher kann nicht sagen ...
Sie müssen also ""
in die Variable einfügen, um den Wert der Variablen zu initialisieren, wie Sie es getan haben.
HTH
Es ist sicherer, die Funktion zur automatischen Deklaration nicht zu verwenden - deshalb wird eine Benachrichtigung ausgegeben. Eine Benachrichtigung ist die niedrigste Warnstufe und wird nicht standardmäßig angezeigt. Die meisten älteren PHP-Apps werden viele Hinweise ausgeben, wenn Sie sie aktivieren.
PHP-Variablen, die automatisch deklariert werden, werden als undefiniert registriert, weshalb Sie die Benachrichtigung erhalten.
Es ist im Allgemeinen besser, PHP-Variablen vor der Verwendung zu deklarieren, obwohl viele der Faulen unter uns, mich selbst nicht immer das tun.
Tags und Links php loops performance