PHP 如果同时定义了数组和键,则设置为一步检查
PHP isset to check in one step if both array and key are defined
$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;
$defined = isset( $foo['bar'] );
如果满足以下所有条件,有效 单步检查:
$foo
定义
$foo
是一个数组
- 数组有一个名为
bar
的键
- 键
bar
的值不是 null
$foo
可能未定义
if( /* condition */ )
{
$foo = array( 'bar' => 1 );
}
稍后在代码中我想检查是否定义了 $foo
以及它是否有一个名为 bar
的键(持有非 null
值)
我可以一步完成吗?
isset
的这种用法有效吗?
$defined = isset( $foo['bar'] );
我在测试脚本中尝试了上述语句,$foo
未定义并且没有抛出错误。但是,我在语言规则设置为 松散 .
我担心 php 语言配置设置可能会设置更多 "strict" 语言模式,其中上述内容是非法的,应该在更多步骤中完成:
$defined = isset( $foo ) && array_key_exists( 'bar', $foo ) && $foo['bar']!==null;
$defined = isset( $foo['bar'] );
如果满足以下所有条件,有效 单步检查:
$foo
定义$foo
是一个数组- 数组有一个名为
bar
的键
- 键
bar
的值不是null