PHP:函数返回值的正确布尔条件参数?

时间:2011-03-27 17:05:28

标签: php conditional boolean

我编写了一个函数,它返回成功数据,失败时返回false。

我想知道这是否被认为是评估php中返回值的正确方法。

function data(){
  if($all_is_good){
    return $data
  }else{
    return false;
  }
}

$data = data(); //basically either a long series of strings or arrays

if(!$data){  //<-- this is the line I'm concerned about, is it safe to assume this?
   echo 'oh no, bad stuff happened';
}

非常感谢你!

3 个答案:

答案 0 :(得分:4)

你有什么是好的,但也可以使用if($data === false) {。这可确保$data实际为false,考虑0NULL也被视为false

答案 1 :(得分:3)

这取决于$data究竟是什么(它的类型和价值)。保持原样(如果$data中的值的类型不确定)或明确检查(例如$data == falseempty($data))是否合理是有道理的类型。这实际上取决于具体情况。

请参阅Converting to boolean

答案 2 :(得分:1)

除非$data的有效值评估为false,否则它是安全的。一长串(即非空)系列的字符串或数组不会被评估为假,但它仍然是一个潜在的陷阱。

您可以考虑使用严格的比较:if(data===False)