Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Zuweisungsoperator
Der grundlegende Zuweisungsoperator ist „=". Zuerst könnte man denken, dass es „gleich“ ist, aber das ist nicht der Fall. Es bedeutet eigentlich, den Wert des Ausdrucks rechts dem Operanden links zuzuweisen.
Der Wert des Zuweisungsoperationsausdrucks ist der zugewiesene Wert. Das heißt, der Wert von „$a = 3“ ist 3. Auf diese Weise können Sie einige Tricks ausführen:
<?php $a = ($b = 4) + 5; // $a 现在成了 9,而 $b 成了 4。 ?>
Bei Arrays wird der Operator „=>“ verwendet, um benannten Schlüsseln Werte zuzuweisen. Dieser Operator hat die gleiche Priorität wie andere Zuweisungsoperatoren.
Zusätzlich zu den grundlegenden Zuweisungsoperatoren gibt es „Kombinationsoperatoren“, die für alle binären Arithmetik-, Array-Set- und String-Operatoren geeignet sind und es Ihnen ermöglichen, seinen Wert in einem Ausdruck zu verwenden und zu kombinieren. Das Ergebnis des Ausdrucks ist ihr zugewiesen, zum Beispiel:
<?php $a = 3; $a += 5; // sets $a to 8, as if we had said: $a = $a + 5; $b = "Hello "; $b .= "There!"; // sets $b to "Hello There!", just like $b = $b . "There!"; ?>
Beachten Sie, dass die Zuweisungsoperation den Wert der ursprünglichen Variablen in die neue Variable kopiert (Zuweisung nach Wert), sodass sich die Änderung einer Variablen nicht auf die andere auswirkt. Dies eignet sich auch zum Kopieren einiger Werte, z. B. großer Arrays in dichten Schleifen.
Es gibt eine Ausnahme vom normalen Verhalten der Wertübergabe in PHP. Wenn ein Objekt gefunden wird, wird es in PHP 5 per Referenz zugewiesen, es sei denn, das Schlüsselwort clone wird explizit zum Kopieren verwendet.
Referenzzuweisung
PHP unterstützt die Referenzzuweisung unter Verwendung der „$var = &$othervar;“-Syntax. Zuweisung per Referenz bedeutet, dass beide Variablen auf dieselben Daten verweisen und nichts kopiert wird.
Beispiel Nr. 1 Referenzzuweisung
<?php $a = 3; $b = &$a; // $b 是 $a 的引用 print "$a\n"; // 输出 3 print "$b\n"; // 输出 3 $a = 4; // 修改 $a print "$a\n"; // 输出 4 print "$b\n"; // 也输出 4,因为 $b 是 $a 的引用,因此也被改变 ?>
Seit PHP 5 gibt der New-Operator automatisch eine Referenz zurück, sodass die Referenzzuweisung des Ergebnisses von New in PHP 5.3 und späteren Versionen nicht funktioniert. Gibt eine E_DEPRECATED-Fehlermeldung aus. In früheren Versionen wurde eine E_STRICT-Fehlermeldung ausgegeben.
Der folgende Code generiert beispielsweise eine Warnung:
<?php class C {} /* The following line generates the following error message: * Deprecated: Assigning the return value of new by reference is deprecated in... */ $o = &new C; ?>