Null Coalesce运算符,具有空的最后一个操作数

时间:2017-02-23 14:21:16

标签: php null-coalescing-operator

它工作正常,不会引起问题

(?=^((?!RSBO).)*$)(?=^((?!RRABO).)*)$(?=^((?!RSISTA0).)*$)

但这是一种公认​​的做法吗?从未见过与echo $formErrorBag[ 'email' ] ?? null 一起使用过的示例。

2 个答案:

答案 0 :(得分:7)

它完全合法,并被接受。如果E_NOTICE没有$formErrorBag密钥,这是一种非常简单而优雅的方法,可以避免提出'email'

答案 1 :(得分:1)

null coalesce运算符使用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.