/ / Was ist der Unterschied zwischen "& =" und "= &", wenn Sie in PHP einen Variablenwert zuweisen? - php, Referenzübergabe

Was ist der Unterschied zwischen "& =" und "= &" bei der Zuweisung eines Variablenwerts in PHP? - PHP, Pass-by-Reference

ich weiß das =& bedeutet normalerweise "Zuweisen nach Verweis", aber was passiert, wenn wir diese beiden Zeichen umkehren, da ich dies in vielen PHP-Skripts gesehen habe?

Antworten:

4 für die Antwort № 1

&= ist ein zusammengesetzter Zuweisungsoperator, wohingegen =& ist eigentlich zwei getrennte Operatoren (= und &), zusammengeschoben. Dies ist eine legale Syntax, da PHP keinen Leerraum zwischen ihnen verlangt.

&= führt eine bitweise UND-Verknüpfung zwischen linker und rechter Seite aus und weist das Ergebnis dann der linken Variablen zu.

$x = 1;
$x &= 0; // $x === 0 now. A more verbose syntax would be "$x = $x & 0;"

Andererseits =& sollte eigentlich auf erweitert werden = & da die Betreiber getrennt sind. Dies ist bekannt als Zuordnung nach Referenz. Das = ist Ihr Standardzuweisungsoperator und der & wenn vorangestellt vor einem Variablennamen wird das zurückgegeben reference auf die Variable.

$y = "foobar";
$x = &$y; // $x now holds a reference to $y.

6 für die Antwort № 2

$a &= $b Kurzform für $a = $a & $b das ist der bitweise-Operator.


5 für die Antwort № 3

Es ist die Verbindung bitweise UND/Aufgabenverwalter:

$x = 0x01;
$y = 0x11;

$y &= $x; // bitwise AND $y and $x, assign result back to $y
var_dump($y == 0x01); // true