2017-02-23 37 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.