国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

一個神奇的操作符即將加入PHP

izhuhaodev / 3129人閱讀

摘要:雖然是一個比較操作符,確實(shí)一個賦值操作符號。從實(shí)際的工程經(jīng)驗(yàn)上來說,這個操作符確實(shí)能簡化判斷。這也不是第一個三個字符組成的操作符除此之外還有。

我在翻看 PHP 的 RFC 列表的時候發(fā)現(xiàn)了一篇不算新的,但很有意思的 rfc:空合并賦值操作符 (姑且就這么翻譯吧)。

它會引起我的注意的還有一個原因是我之前寫過這樣一篇文章:兩行代碼給 PHP7 添加一個“非空合并”語法糖,里面講的是添加一個 ??: 操作符的方法, 而現(xiàn)在要講的這個,已經(jīng)被接受的 rfc 里添加的操作符是: ??=

由于這個事情本身可說的不多,這里就根據(jù) rfc 簡單描述一下吧。以下部分是 rfc 的翻譯。


合并賦值操作符在上世紀(jì)七十年代就出現(xiàn)了,最早是在 C 語言里,比如 $x = $x + 3 可以被簡寫為 $x += 3。隨著 PHP 成為一門專注于 Web 的語言,?? 操作符經(jīng)常會被用去檢查變量是否存在:比如:

$username = $_GET["user"] ?? "nobody";

但是由于大部分情況下變量的名稱回避 $username 長很多,所以在使用 ?? 檢查后講變量本身賦值給自己的時候會需要些一些重復(fù)的代碼,形如以下形式:

 $this->request->data["comments"]["user_id"] = $this->request->data["comments"]["user_id"] ?? ‘value’;

這就是為什么需要一個能在自我賦值的時候進(jìn)行空合并檢查的賦值操作符的原因。

雖然 ?? 是一個比較操作符,??= 確實(shí)一個賦值操作符號。如果左值為 null,右值會被賦給左值,否則不做任何操作。

// 下面這一行有相同的效果
$this->request->data["comments"]["user_id"] = $this->request->data["comments"]["user_id"] ?? "value";
// 使用新操作符替代重復(fù)的代碼
$this->request->data["comments"]["user_id"] ??= "value";

用簡單描述就是:左值為空時復(fù)制右值。


從實(shí)際的工程經(jīng)驗(yàn)上來說,這個操作符確實(shí)能簡化判斷。這也不是第一個三個字符組成的操作符(除此之外還有 <<=>>====!==)。

這個操作符并沒有出現(xiàn)在 PHP7.1 中,因?yàn)?rfc 提出來的時候已經(jīng) 7.1 已經(jīng)是 beta3 了,而新特性需要在 beta1 時就凍結(jié),所以在 7.2 中應(yīng)該就可以用上它了。

既然說到簡化重復(fù)的代碼,??= 都已經(jīng)來了,??: 還會遠(yuǎn)嗎 ? 。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/22196.html

相關(guān)文章

  • PHP下如何優(yōu)雅使用Docker來構(gòu)建環(huán)境(二)

    摘要:指令這條命令是指明最后容器需要暴露哪些端口號,這樣其他系統(tǒng)才能使用這個端口。但是靈活性不高,后面我在編排的時候會教大家用編排來統(tǒng)一開發(fā)環(huán)境。更多還有更多指令大家看下官方文檔,我自己覺得上面的指令算是使用比較多的了。 前言 上一篇文章呢,我們簡單的了解了Docker的基本命令,這篇文章呢,我們來了解下Dockerfile這個文件。 一個神奇的文件:Dockerfile 我不知道有多少同學(xué)...

    longshengwang 評論0 收藏0
  • PHP下如何優(yōu)雅使用Docker來構(gòu)建環(huán)境(二)

    摘要:指令這條命令是指明最后容器需要暴露哪些端口號,這樣其他系統(tǒng)才能使用這個端口。但是靈活性不高,后面我在編排的時候會教大家用編排來統(tǒng)一開發(fā)環(huán)境。更多還有更多指令大家看下官方文檔,我自己覺得上面的指令算是使用比較多的了。 前言 上一篇文章呢,我們簡單的了解了Docker的基本命令,這篇文章呢,我們來了解下Dockerfile這個文件。 一個神奇的文件:Dockerfile 我不知道有多少同學(xué)...

    jollywing 評論0 收藏0
  • XK-Note - 一個集各種神奇功能云筆記

    摘要:一個集各種神奇功能的云筆記前言博主是個計(jì)科的大學(xué)生,所以經(jīng)常需要將一些不太理解的代碼或者經(jīng)驗(yàn)記錄下來,紙質(zhì)筆記對一些經(jīng)驗(yàn)還好,一旦涉及代碼。。。簡介一個由上方代碼組成,集各種神奇功能的云筆記。還有多種神奇的功能等待你的發(fā)掘。 XK-Note 一個集各種神奇功能的云筆記 showImg(https://segmentfault.com/img/remote/146000001908068...

    muddyway 評論0 收藏0
  • CNCF里程碑:超過375家會員

    摘要:跨越大關(guān)是基金會的一個不可思議的里程碑,特別是在我們的最終用戶社區(qū)中有超過家組織。提供日本長期運(yùn)行的首要解決方案,這是移動商務(wù)安全部署的關(guān)鍵推動因素。 基金會達(dá)到會員里程碑,包括Booz Allen、愛立信和SimpleNexus在內(nèi)的59家組織加入支持 showImg(https://segmentfault.com/img/bVbpJJq); 加利福尼亞半月灣 - 2019年3月1...

    CntChen 評論0 收藏0
  • CNCF里程碑:超過375家會員

    摘要:跨越大關(guān)是基金會的一個不可思議的里程碑,特別是在我們的最終用戶社區(qū)中有超過家組織。提供日本長期運(yùn)行的首要解決方案,這是移動商務(wù)安全部署的關(guān)鍵推動因素。 基金會達(dá)到會員里程碑,包括Booz Allen、愛立信和SimpleNexus在內(nèi)的59家組織加入支持 showImg(https://segmentfault.com/img/bVbpJJq); 加利福尼亞半月灣 - 2019年3月1...

    boredream 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<