2017-02-23 39 views
2

它工作正常,並不會造成問題空聯合運營商與空最後操作

echo $formErrorBag[ 'email' ] ?? null 

但它是一個公認的做法?從未見過與null一起使用的示例。

+0

但是爲什麼?你能提供一個這樣的例子嗎? – Jerodev

+0

只是這樣做,它逃脫了。 –

+0

再次,你爲什麼要這樣做?如果'$ formErrorBag ['email']'爲空,這將已經返回null,你只是添加額外的代碼,這會讓你的應用程序變慢。 – Jerodev

回答

7

這是完全合法的,並被接受。如果$formErrorBag沒有'email'鍵,這是一個非常簡單和優雅的方式來避免提高E_NOTICE

1

空聚結操作的檢查值與isset(),所以這樣的:

echo $formErrorBag['email'] ?? null; 

等於:

if(isset($formErrorBag['email'])){ 
    echo $formErrorBag['email']; 
} else { 
    echo null; 
} 

我真的沒有看到的一點,你仍在執行的功能做從字面上看沒有任如果你這樣做是爲了避免提高E_NOTICE,你可以簡單地用error_reporting()關掉它,因爲你的方法有點違反了整個方面。

它在那裏警告您可能存在您的代碼中的錯誤,而不是找到抑制它的技術。

error_reporting(error_reporting()^E_NOTICE); // turn notices off keep remaining flags intact. 

echo $array['doesnotexist']; 
echo $array['etc']; 

error_reporting(error_reporting() | E_NOTICE); // turn it back on.