《PHP實戰:詳解PHP中的null合并運算符》要點:
本文介紹了PHP實戰:詳解PHP中的null合并運算符,希望對您有用。如果有疑問,可以聯系我們。
null合并運算符是一個好東西,有了它我們就能很方便的獲取一個參數,并能在其為空的情況下提供一個默認值.好比在js中可以用||來搞:PHP實例
function setSomething(a){ a = a || 'some-default-value'; // ... }
而在PHP中,惋惜PHP的||總是返回true或false,無法這樣來搞.PHP實例
?PHP7才正式參加了??這個運算符:PHP實例
// 獲取user參數的值(如果為空,則用'nobody') $username = $_GET['user'] ?? 'nobody'; // 等價于: $username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
?PHP7 估計還有很長時間能力用到生產環境中,那在目前的PHP5中有沒有替代方案呢?PHP實例
?據研究,完全有個非常便捷的替代計劃:PHP實例
// 獲取user參數的值(假如為空,則用'nobody') $username = @$_GET['user'] ?: 'nobody'; // 等價于: $username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
?-- 運行此代碼: https://3v4l.org/aDUW8PHP實例
瞪大了眼睛看,跟前面的PHP7的例子差不多,主要是把 ?? 替換為了 ?: . 這個是個什么鬼呢?其實這便是 (expr1) ? (expr2) : (expr3) 表達式的省略模式:PHP實例
?表達式 (expr1) 必修 (expr2) : (expr3) 在 expr1 求值為 TRUE 時的值為 expr2,在 expr1 求值為 FALSE 時的值為 expr3.PHP實例
?自 PHP 5.3 起,可以省略三元運算符中間那部分.表達式 expr1 ?: expr3 在 expr1 求值為 TRUE 時返回 expr1,不然返回 expr3.PHP實例
?-- http://php.net/manual/zh/language.operators.comparison.php
PHP實例
當然,這個替代方案也不是完美的 ―― 如果 $_GET 中沒有 'user',會有一條 Notice: Undefined index: user 的錯誤,所以必要用@來抑制這個錯誤,或者關閉 E_NOTICE 的錯誤.PHP實例
ps:PHP7 null合并運算符 離別isset()PHP實例
以前的寫法PHP實例
$info = isset($_GET['email']) ? $_GET['email'] : ‘noemail';
如今直接這樣寫就可以了PHP實例
$info = $_GET['email'] ?? noemail;
還可以如許連寫使用PHP實例
$info = $_GET['email'] 必修必修 $_POST['email'] 必修必修 ‘noemail';
《PHP實戰:詳解PHP中的null合并運算符》是否對您有啟發,歡迎查看更多與《PHP實戰:詳解PHP中的null合并運算符》相關教程,學精學透。維易PHP學院為您提供精彩教程。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/7948.html