$foo
可能不定义
if( /* condition */ )
{
$foo = array( 'bar' => 1 );
}
稍后在代码中我想检查两个$foo
是否已定义,以及是否有一个名为bar
的密钥(持有非null
值)
我可以一步完成吗?
isset
的这种用法是否有效?
$defined = isset( $foo['bar'] );
我在测试脚本中尝试了上述语句,未定义$foo
且没有抛出错误。但是,我在语言规则设置松散的上下文中从控制台调用了php。
我关注的是php语言配置设置可能会设置更多" strict"语言模式,其中上述内容是非法的,应该采取更多步骤:
$defined = isset( $foo ) && array_key_exists( 'bar', $foo ) && $foo['bar']!==null;
答案 0 :(得分:1)
$defined = isset( $foo['bar'] );
如果满足以下所有条件,有效可以一步检查:
$foo
已定义$foo
是一个数组bar
bar
的值不是null