【问题标题】:PHP function returning booleanPHP函数返回布尔值
【发布时间】:2011-02-08 12:39:04
【问题描述】:

我怎样才能有一个boolean 返回函数?
我的意思是在其他编程语言上也是这样。

return true; // return false

【问题讨论】:

  • 这正是你在 PHP 中的做法。

标签: php boolean


【解决方案1】:

难以置信

return true;

例如

function testIfABC($x) {
    if ($x === 'ABC') {
        return true;
    }
    return false;
}

虽然这更容易写成:

function testIfABC($x) {
    return ($x === 'ABC');
}

它仍然会返回一个布尔值

【讨论】:

    【解决方案2】:
    <?php
    
      function doSomething() {
        return true;
      }
    

    你需要的函数可能是这样的:

      function check($var, $length) { 
        return (strlen($var)<=$length) && (isset($var));
      }
    
    ?>
    

    【讨论】:

    • 奇怪,我有这个函数 function check($var, $length) { if((strlen(var)
    • 可能是“strlen($var)”而不是“strlen(var)”?
    【解决方案3】:

    这个问题并不完全有道理,因为你还没有问你已经解决的问题。

    PHP中的函数可以这样实现。

    function check($int) {
       if ($int == 3) {
          return true;
       } else {
          return false;
       }
    }
    if (check(3)) echo "Returned true!";
    

    【讨论】:

    • 我也可以检查 if isset($int) 吗?而不是 3,另一个名为 $length 的参数?
    • @Cyril - 你可以检查任何你想要的......你只需要编写函数来进行检查......我建议你阅读函数uk.php.net/manual/en/language.functions.php的PHP文档的相关部分
    • 如果是return($int == 3)会不会更简单;
    • @AntonioCS 是的,这将是一种更理想的处理方式,但请记住,这有点高级,不应该在没有掌握基础知识的情况下向初学者展示。这是完全正确的,如果我进行比较,我个人也是这样做的。 :)
    • 谢谢(:我是 Obj-C 开发人员 PHP 对我来说非常神奇。干杯。
    【解决方案4】:

    作为一个更实际的例子,您可以使用任何布尔表达式作为结果:

    return ($data != "expected") or ($param == 17);
    

    【讨论】:

      【解决方案5】:

      从 PHP 5.5 开始,您可以使用 boolval 函数:

      (PHP 5 >= 5.5.0, PHP 7) boolval — 获取变量的布尔值

      return boolval( $result );
      

      或者只是convert to boolean。但也许这一切都不是必需的:

      要将值显式转换为布尔值,请使用 (bool)(boolean) 强制转换。但是,在大多数情况下,强制转换是不必要的,因为如果运算符、函数或控制结构需要布尔参数,则会自动转换值。

      return (bool) $result;
      return (boolean) $result;
      

      【讨论】:

        【解决方案6】:

        我确实理解这个问题,因为在 Visual C# 中,您可以定义一个仅返回 bool 的函数。在 PHP 中情况并非如此。您可以只使用 function blabla($val) { return ($val == "yes" ? true : false); }。不支持“public bool($value) { return true; // false }”

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-10-29
          • 2013-03-11
          • 2012-05-10
          • 1970-01-01
          • 2017-06-07
          • 2011-07-22
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多