Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中检查空值是否更有效?_Php_Performance - Fatal编程技术网

在php中检查空值是否更有效?

在php中检查空值是否更有效?,php,performance,Php,Performance,在某些情况下,当空值不是问题时,我不检查变量 例如: $fruits = array("apple","banana"); foreach ($fruits as $a) { $res .= ", $a"; } echo "This are the fruits you like: ".$res; 现在,如果$fruits碰巧是空的,这不是问题,只是列表将是空的(我知道这不是很优雅,我可以使用条件语句将答案更改为“你不喜欢任何水果”,但这只是一个示例!) 我只是想知道通常检查

在某些情况下,当空值不是问题时,我不检查变量

例如:

$fruits = array("apple","banana");
    foreach ($fruits as $a) {
    $res .= ", $a";
}

echo "This are the fruits you like: ".$res;
现在,如果$fruits碰巧是空的,这不是问题,只是列表将是空的(我知道这不是很优雅,我可以使用条件语句将答案更改为“你不喜欢任何水果”,但这只是一个示例!)

我只是想知道通常检查数组是否为空是否更有效。 简言之,从性能的角度来看,这是更好还是没有任何实际的区别:

if (!empty($fruits)) foreach()... and so on
谢谢,
这取决于数组中填充的内容。例如,如果它是用户输入,您可能需要确保它不是空的,否则,如果它不需要,则不需要。这肯定是以个案为基础的


另外,使用empty()时要小心;如果该值为0,则即使存在值,也将返回true。您可以使用strlen()来解决这个问题:)

任何性能提升都可以忽略不计。这就是所谓的微观优化。专注于编写好的代码,不要再担心微优化

我喜欢这样的东西:

if(!empty($fruit) && is_array($fruit)){
    echo "This are the fruits you like: " . implode(", ", $fruit);
}

您还可以使用
isset()
来检查变量的值是否为0。

您想检查数组
$fruits
是否为空,然后按照Wayne的建议使用
内爆

  if(!empty($fruits)){
   echo "This are the fruits you like: " . implode(", ", $fruits);
 }

如果您已将数组初始化为
$fruits=array(),则实际上不需要使用
is_array
在这些行之前。

好吧,在这种情况下,我认为这不会有很大的区别。但是,如果它是空的,$res将永远不会被声明,这可能会导致错误,并且错误总是坏的

echo is_array($array) ? implode(', ', $array) : false;
单线解决方案

或者你可以用,伯爵


例如:count($array)>0….

我会做同样的事情,只是我会有一个附加条件:
如果(is_array($fruit)&&&!empty($fruit))
考虑到
$fruit
可以是
数组()