PHP基礎(chǔ)之運(yùn)算符3——賦值運(yùn)算符
基本的賦值運(yùn)算符是“=”。一開始可能會(huì)以為它是“等于”,其實(shí)不是的。它實(shí)際上意味著把右邊表達(dá)式的值賦給左邊的運(yùn)算數(shù)。
賦值運(yùn)算表達(dá)式的值也就是所賦的值。也就是說(shuō),“$a = 3”的值是 3。這樣就可以做一些小技巧:
<?php$a?=?($b?=?4)?+?5;?//?$a?現(xiàn)在成了?9,而?$b?成了?4。?>
對(duì)于數(shù)組?array,對(duì)有名字的鍵賦值是用“=>”運(yùn)算符。此運(yùn)算符的優(yōu)先級(jí)和其它賦值運(yùn)算符相同。
在基本賦值運(yùn)算符之外,還有適合于所有二元算術(shù),數(shù)組集合和字符串運(yùn)算符的“組合運(yùn)算符”,這樣可以在一個(gè)表達(dá)式中使用它的值并把表達(dá)式的結(jié)果賦給它,例如:
<?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!';?>
注意賦值運(yùn)算將原變量的值拷貝到新變量中(傳值賦值),所以改變其中一個(gè)并不影響另一個(gè)。這也適合于在密集循環(huán)中拷貝一些值例如大數(shù)組。
在 PHP 中普通的傳值賦值行為有個(gè)例外就是碰到對(duì)象?object?時(shí),在 PHP 5 中是以引用賦值的,除非明確使用了?clone?關(guān)鍵字來(lái)拷貝。
引用賦值PHP 支持引用賦值,使用“$var = &$othervar;”語(yǔ)法。引用賦值意味著兩個(gè)變量指向了同一個(gè)數(shù)據(jù),沒(méi)有拷貝任何東西。
Example #1 引用賦值
<?php$a?=?3;$b?=?&$a;?//?$b?是?$a?的引用print?'$an';?//?輸出?3print?'$bn';?//?輸出?3$a?=?4;?//?修改?$aprint?'$an';?//?輸出?4print?'$bn';?//?也輸出?4,因?yàn)?$b?是?$a?的引用,因此也被改變?>
自 PHP 5 起,new?運(yùn)算符自動(dòng)返回一個(gè)引用,因此再對(duì)?new?的結(jié)果進(jìn)行引用賦值在 PHP 5.3 以及以后版本中會(huì)發(fā)出一條?E_DEPRECATED?錯(cuò)誤信息,在之前版本會(huì)發(fā)出一條E_STRICT?錯(cuò)誤信息。
例如以下代碼將產(chǎn)生警告:
<?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;?>
相關(guān)文章:
1. js實(shí)現(xiàn)碰撞檢測(cè)2. 我所理解的JavaScript中的this指向3. JS實(shí)現(xiàn)前端動(dòng)態(tài)分頁(yè)碼代碼實(shí)例4. 用Spring JMS使異步消息變得簡(jiǎn)單5. PHP驗(yàn)證碼工具-Securimage6. spring acegi security 1.0.0 發(fā)布7. 關(guān)于IDEA 2020.3 多窗口視圖丟失的問(wèn)題8. javascript實(shí)現(xiàn)貪吃蛇小練習(xí)9. Vue 實(shí)現(xiàn)對(duì)quill-editor組件中的工具欄添加title10. 一文帶你徹底理解Java序列化和反序列化

網(wǎng)公網(wǎng)安備