PHP基礎之運算符3——賦值運算符
基本的賦值運算符是“=”。一開始可能會以為它是“等于”,其實不是的。它實際上意味著把右邊表達式的值賦給左邊的運算數。
賦值運算表達式的值也就是所賦的值。也就是說,“$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?'$an';?//?輸出?3print?'$bn';?//?輸出?3$a?=?4;?//?修改?$aprint?'$an';?//?輸出?4print?'$bn';?//?也輸出?4,因為?$b?是?$a?的引用,因此也被改變?>
自 PHP 5 起,new?運算符自動返回一個引用,因此再對?new?的結果進行引用賦值在 PHP 5.3 以及以后版本中會發出一條?E_DEPRECATED?錯誤信息,在之前版本會發出一條E_STRICT?錯誤信息。
例如以下代碼將產生警告:
<?phpclass?C?{}/*?The?following?line?generates?the?following?error?message:*?Deprecated:?Assigning?the?return?value?of?new?by?reference?is?deprecated?in...*/$o?=?&new?C;?>
相關文章:
