基本的な代入演算子は「=」です。最初は「等しい」と思うかもしれませんが、そうではありません。これは実際には、右側の式の値を左側のオペランドに代入することを意味します。
代入演算式の値が代入された値になります。つまり、「$a = 3」の値は 3 になります。このようにして、いくつかのトリックを行うことができます:
<?php $a = ($b = 4) + 5; // $a 现在成了 9,而 $b 成了 4。 ?>
配列の場合、「=>」演算子を使用して名前付きキーに値を割り当てます。この演算子は、他の代入演算子と同じ優先順位を持ちます。
基本的な代入演算子に加えて、すべての二項算術演算子、配列セット演算子、および文字列演算子に適した「結合演算子」があり、式でその値を使用し、式の結果を結合することができます。例:
<?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!"; ?>
代入操作では、元の変数の値が新しい変数にコピーされるため (値による代入)、一方を変更しても他方には影響しないことに注意してください。これは、密なループ内の大きな配列などの一部の値をコピーするのにも適しています。
PHP の通常の値渡しによる代入動作には例外があり、オブジェクトが見つかった場合、コピーに clone キーワードが明示的に使用されない限り、PHP 5 では参照によって割り当てられます。
参照の割り当て
PHP は、「$var = &$othervar;」構文を使用した参照の割り当てをサポートしています。参照による代入は、両方の変数が同じデータを指し、何もコピーされないことを意味します。
例 #1 参照割り当て
<?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 的引用,因此也被改变 ?>
PHP 5 以降、new 演算子は自動的に参照を返すため、PHP 5.3 以降のバージョンでは new の結果の参照割り当てにより E_DEPRECATED エラー メッセージが発行されます。 E_STRICT エラー メッセージ。
たとえば、次のコードは警告を生成します:
<?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; ?>