PHP中的等于號 =
就是賦值運算符蚯瞧。
$sum = 1 + 2;
這個例子的正確解讀方式是將表達式 1 + 2
的值賦值給等于號左邊的 $sum
變量,而不是說 $sum
等于 1 + 2
掂铐。
賦值運算符可以配合算術(shù)運算符組合在一起應用罕拂。
// 定義變量 a = 10 , b = 5
$a = ($b = 5) + 5;
// 加減乘除
// $a = $a + $b
$a += $b;
// $a = $a - $b
$a -= $b;
// $a = $a * $b
$a *= $b;
// $a = $a / $b
$a /= $b;
// 取模
$a %= $b;
// 次冪
$a **= $b;
// 拼接字符串 返回 "105"
$a .= $b
賦值運算符一般是通過 傳值賦值 的形式進行,也就是將等于號右邊表達式的結(jié)果克隆一份給左邊的變量全陨,而這其中有一個例外是對象的賦值爆班,默認便是 引用賦值,除非明確的使用 clone
關(guān)鍵字來拷貝辱姨。
// 普通變量
$foo = "abc";
$bar = $foo;
// 修改其值
$foo = "xyz";
// 輸出 abc
echo $bar;
// 定義類
class Example{
public $foobar = "iGuoji";
}
// 實例化
$exam = new Example();
// 輸出 iGuoji
echo $exam->foobar . '<br />';
// 賦值
$temp = $exam;
// 輸出 iGuoji
echo $temp->foobar . '<br />';
// 克隆
$hello = clone $exam;
// 輸出 iGuoji
echo $hello->foobar . '<br />';
// 修改實例的屬性
$exam->foobar = "Laravel";
// 輸出 Laravel
echo $temp->foobar . '<br />';
// 還是輸出 iGuoji
echo $hello->foobar . '<br />';
PHP支持顯示的引用賦值柿菩,只需要使用&
符號即可。
// 普通變量
$foo = "abc";
$bar = &$foo;
// 修改其值
$foo = "xyz";
// 輸出 xyz
echo $bar;
需要注意的是雨涛,PHP里new
運算符自動返回一個引用結(jié)果碗旅,如果再次對new
使用引用,將會報錯镜悉。