【问题标题】:can php return a boolean? => return $aantal == 0;php可以返回一个布尔值吗? => 返回 $aantal == 0;
【发布时间】:2010-12-14 10:57:29
【问题描述】:

php 可以像这样返回一个布尔值吗:

return $aantal == 0;

你可以像在java中一样

public boolean test(int i)
{
return i==0;
}

或者你必须使用 if 构造吗? 因为如果我这样做。

$foutLoos = checkFoutloos($aantal);

function checkFoutloos($aantal)
{
    return $aantal == 0;
}

echo "foutLoos = $foutLoos"; 

它的回声

foutLoos = 

所以不是真假

谢谢 马蒂

【问题讨论】:

    标签: php syntax variables boolean return


    【解决方案1】:

    它返回一个布尔值,但布尔值在输出时不会转换为字符串。试试这个:

    $foutLoos = checkFoutloos($aantal);
    
    function checkFoutloos($aantal)
    {
        return $aantal == 0;
    }
    
    echo "foutLoos = " . ( $foutLoos ? "true" : "false" );
    

    【讨论】:

    • 只是补充一点,无论何时进行比较(使用任何比较运算符),结果都是布尔值。如果您不确定,只需使用强制转换来确保它是布尔值。 return (bool)($aantal == 0);
    【解决方案2】:

    试试看!

    function is_zero($n) {
        return $n == 0;
    }
    
    echo gettype(is_zero(0));
    

    输出:

    boolean
    

    【讨论】:

      【解决方案3】:

      是的,我发现当你回显一个错误时,你什么也得不到,而真正的回声是 1,这就是我感到困惑的原因;)

      【讨论】:

      • PHP 的类型很松散。它会将您的变量转换为适当的上下文。有好有坏。
      • 我不认为“适当”是这个词。你想把一个布尔值变成一个字符串,所以它在“1”和“”之间选择?
      【解决方案4】:

      是的。你甚至可以通过三元运算符。

      function foo($bar == 0) {
          return ($bar) ? true : false;
      }
      

      【讨论】:

        【解决方案5】:

        是的,您可以在返回函数中返回布尔测试。我喜欢把我的放在括号里,这样我就知道正在评估什么。

        function Foo($Bar= 0) {
            return ($Bar == 0);
        }
        
        $Return = Foo(2);
        $Type = var_export($Return, true);
        
        echo "Return Type: ".$Type; // Return Type: boolean(true)
        

        事实上,几乎任何东西都可以在return 行上进行评估。不过不要发疯,因为这可能会使重构变得更加困难(例如,如果您想允许插件操纵返回)。

        【讨论】:

          【解决方案6】:

          我认为你可以这样做,使用类型转换:

          return (bool) $aantal; 
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-07-09
            • 2012-05-10
            • 2014-05-16
            • 1970-01-01
            • 1970-01-01
            • 2021-07-31
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多