它工作正常,不会引起问题
(?=^((?!RSBO).)*$)(?=^((?!RRABO).)*)$(?=^((?!RSISTA0).)*$)
但这是一种公认的做法吗?从未见过与echo $formErrorBag[ 'email' ] ?? null
一起使用过的示例。
答案 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.