【问题标题】:PHP: Proper boolean conditional argument for the return value of a function?PHP:函数返回值的正确布尔条件参数?
【发布时间】:2023-03-05 02:18:01
【问题描述】:

我写了一个函数,成功返回数据,失败返回假。

我想知道这是否被认为是评估 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';
}

非常感谢!

【问题讨论】:

    标签: php conditional boolean


    【解决方案1】:

    您所拥有的一切都很好,尽管您也可以使用if($data === false) {。这确保了$data 实际上是false,考虑到0NULL 也被视为false

    【讨论】:

    • 一个空字符串 "" 的计算结果也为 false。
    【解决方案2】:

    这取决于$data 到底是什么(它的类型和值)。保持原样(如果$data 中的值的类型不确定)或明确检查(例如$data == falseempty($data))如果它是已知类型是有意义的。这真的取决于具体情况。

    Converting to boolean

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2018-08-11
        • 2013-09-15
        • 1970-01-01
        • 1970-01-01
        • 2020-07-25
        • 1970-01-01
        • 2016-09-18
        • 2018-10-10
        • 2013-09-11
        相关资源
        最近更新 更多