摘要:原文地址今天我發(fā)現(xiàn)了三元運(yùn)算符的一個(gè)小小的用法這給我干涸的大腦一點(diǎn)樂(lè)趣三元運(yùn)算符是對(duì)參數(shù)賦值時(shí)候的一個(gè)簡(jiǎn)潔的主要用法一個(gè)主要的用法三元運(yùn)算符能夠讓你在一行代碼中描述判定代碼從而替換掉類(lèi)似以下的代碼使用以下代碼替代第二個(gè)代碼例子是非常簡(jiǎn)潔的用
原文地址 Even shorter ternary operators in PHP using ?:
今天我發(fā)現(xiàn)了PHP三元運(yùn)算符的一個(gè)小小的用法. 這給我干涸的大腦一點(diǎn)樂(lè)趣!
PHP 三元運(yùn)算符是對(duì)參數(shù)賦值時(shí)候的一個(gè)簡(jiǎn)潔的主要用法. 一個(gè)主要的用法: PHP 三元運(yùn)算符能夠讓你在一行代碼中描述判定代碼, 從而替換掉類(lèi)似以下的代碼:
if (isset($value)) { $output = $value; } else { $output = "No value set."; }
使用以下代碼替代:
$output = isset($value) ? $value : "No value set.";
第二個(gè)代碼例子是非常簡(jiǎn)潔的用法, 在多種情況下(并非所有), 這是一個(gè)非常實(shí)用的用法. 有許多關(guān)于是否應(yīng)該使用三元運(yùn)算符的爭(zhēng)辯;讓我說(shuō), 這就是一個(gè)工具, 向其他工具一樣, 只是用的正確與否.
常用的語(yǔ)法是 (expression) ? value if truthy : value if falsy.這個(gè)表達(dá)式可以是一個(gè)變量, 測(cè)試這個(gè)變量是真還是假:
$output = $value ? $value : "No value set.";
問(wèn)題是: 以上的例子很常用同時(shí)也重復(fù)的有些煩人: 寫(xiě)兩次 $value 就像是感到錯(cuò)誤一樣.
好在是, 我今天發(fā)現(xiàn)在PHP 5.3中介紹了一個(gè)更簡(jiǎn)潔的使用三元運(yùn)算符的語(yǔ)法. 你可以從手冊(cè)中學(xué)到, 但是這里我們?cè)趺礃幼屔线叺睦痈?jiǎn)潔呢:
$output = $value ?: "No value set.";
這個(gè)看起來(lái)很熟悉, 這個(gè)是因?yàn)楹芟衿渌暮?jiǎn)寫(xiě)運(yùn)算符:
$value = $value . $other_value;
轉(zhuǎn)換成:
$value .= $other_value;
為了更簡(jiǎn)潔, 這個(gè)意味著我們可以這樣簡(jiǎn)寫(xiě)并不意味著我們就應(yīng)該這么寫(xiě). 但是, 當(dāng)我們寫(xiě)簡(jiǎn)潔代碼的時(shí)候, 這種方式會(huì)看起來(lái)更清楚, 我們應(yīng)該這么寫(xiě), (并且這個(gè)特性允許我們?cè)诙喾N情況下使用這個(gè)運(yùn)算符[this feature allows us to DRY up the ternary operator in many cases])
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/25733.html
摘要:否則,將返回空數(shù)組的長(zhǎng)度。該提案目前處于第階段,作為一項(xiàng)實(shí)驗(yàn)性功能。轉(zhuǎn)換為布爾值除了常規(guī)的布爾值和之外,還將所有其他值視為或。這也可以用于將布爾值轉(zhuǎn)換為數(shù)字,如下所示在某些上下文中,將被解釋為連接操作符,而不是加法操作符。 譯者:前端小智 原文:medium.com/@bretcamero… 當(dāng)我開(kāi)始學(xué)習(xí)JavaScript時(shí),我把我在別人的代碼、code challenge網(wǎng)站以及我使用...
摘要:你可以進(jìn)行如下操作需要注意的是這個(gè)竅門(mén)只適用于。在中就不需要進(jìn)行操作了,因?yàn)樗呀?jīng)默認(rèn)進(jìn)行了。這里有幾個(gè)例子可以供你參考譯文出處本文根據(jù)的所譯,整個(gè)譯文帶有我自己的理解與思想,如果譯得不好或有不對(duì)之處還請(qǐng)同行朋友指點(diǎn)。 枚舉 不要這么做: i = 0 for item in iterable: print i, item i += 1 而是這樣: for...
摘要:函數(shù)默認(rèn)值是一個(gè)很提高魯棒性的東西就是讓程序更健壯關(guān)于函數(shù)默認(rèn)參數(shù)的描述函數(shù)默認(rèn)參數(shù)允許在沒(méi)有值或被傳入時(shí)使用默認(rèn)形參。也就實(shí)現(xiàn)了上邊三元運(yùn)算符的功能。直接使用這種方式,省去了在函數(shù)內(nèi)部進(jìn)行默認(rèn)值的檢查,能夠讓函數(shù)專(zhuān)注的做它應(yīng)該做的事情。 函數(shù)默認(rèn)值是一個(gè)很提高魯棒性的東西(就是讓程序更健壯)MDN關(guān)于函數(shù)默認(rèn)參數(shù)的描述:函數(shù)默認(rèn)參數(shù)允許在沒(méi)有值或undefined被傳入時(shí)使用默認(rèn)形參...
摘要:我們應(yīng)該考慮使用字符串常量調(diào)用方法來(lái)代替使用對(duì)象調(diào)用該方法。然而如果我們通過(guò)字符串常量來(lái)調(diào)用方法,執(zhí)行流程會(huì)正常進(jìn)行檢查方法的參數(shù)在執(zhí)行方法的方法體之前,務(wù)必對(duì)方法的參數(shù)進(jìn)行值檢查。 原文地址作者 Sotirios-Efstathios (Stathis) Maneas譯者 smallcloverThanks for your watching! java.lang.NullPoine...
摘要:添加了一個(gè)合并操作符,用于簡(jiǎn)化的條件判斷它相當(dāng)于僅僅是判斷,在為等值時(shí)還是會(huì)返回的值還是為。 我們知道從 PHP 5.3?起三元運(yùn)算符 ? : 有一個(gè)寫(xiě)法簡(jiǎn)潔寫(xiě)法是這樣的:
閱讀 4033·2021-11-22 13:53
閱讀 1735·2021-09-23 11:52
閱讀 2454·2021-09-06 15:02
閱讀 975·2019-08-30 15:54
閱讀 915·2019-08-30 14:15
閱讀 2398·2019-08-29 18:39
閱讀 670·2019-08-29 16:07
閱讀 433·2019-08-29 13:13