在编写php时,我尽量避免使用尽可能多的警告.关于数组,有一个问题让我困扰了很长一段时间.
在处理数组及其值时,我经常在进入"实际工作"之前检查空值.
if(array_key_exists('bla', $array){
if( !empty($array['bla']) {
# do something
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:
这是很多代码,只是检查我是否有值可以使用.是否有一些更短的方法来检查数组中可能存在或不存在的值?
如果您要检查非空值,那么您可以使用!empty($array['bla']).
您还可以使用isset($array['bla']),它false会在以下情况下返回:1) 未定义键或 2) 如果为键存储的值为null。检查数组是否包含键(即使其值为空)的唯一万无一失的方法是使用array_key_exists().
empty()即使密钥存在(行为类似于),对 的调用也是安全的isset(),因此您不必通过 来保护它array_key_exists()。
我很惊讶这一点没有被提及,但在不生成警告/错误的情况下获取键值的最短方法是使用错误控制运算符:
// safely fetch from array, will return NULL when key doesn't exist
$value = @$array['bla'];
Run Code Online (Sandbox Code Playgroud)
这允许您获取任何键的值,并且null如果该键不存在则可能返回该值。