php賦值運算符

伊谢尔伦
發布: 2016-11-24 13:35:22
原創
1498 人瀏覽過

基本的賦值運算子是「=」。一開始可能會以為它是“等於”,其實不是的。它實際上意味著把右邊表達式的值賦給左邊的運算數。

賦值運算表達式的值也就是所賦值的值。也就是說,「$a = 3」的值是 3。這樣就可以做一些小技巧:

<?php
$a = ($b = 4) + 5; // $a 现在成了 9,而 $b 成了 4。
?>
登入後複製

對於陣列 array,對有名字的鍵賦值是用「=>」運算子。此運算子的優先權及其它賦值運算子相同。

在基本賦值運算符之外,還有適合於所有二元算術,數組集合和字符串運算符的“組合運算符”,這樣可以在一個表達式中使用它的值並把表達式的結果賦給它,例如:

<?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 中普通的傳值賦值行為有個例外就是碰到物件 object 時,在 PHP 5 中是以引用賦值的,除非明確使用了 clone 關鍵字來拷貝。

引用賦值

PHP 支援引用賦值,使用「$var = &$othervar;」語法。引用賦值意味著兩個變數指向了同一個數據,沒有拷貝任何東西。

Example #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 運算子自動傳回一個引用,因此再對 new 的結果進行引用賦值在PHP 5.3 以及以後會發出一條錯誤,因此在版本中會發出另一個版本的資訊,DEPRECATE 發出一條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;
?>
登入後複製


相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!