php可以返回一个布尔值吗? => 返回 $aantal == 0;

Posted

技术标签:

【中文标题】php可以返回一个布尔值吗? => 返回 $aantal == 0;【英文标题】:can php return a boolean? => return $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 = 

所以不是真假

谢谢 马蒂

【问题讨论】:

【参考方案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; 

【讨论】:

以上是关于php可以返回一个布尔值吗? => 返回 $aantal == 0;的主要内容,如果未能解决你的问题,请参考以下文章

如果函数返回多种类型,我可以声明一个函数返回值吗? [复制]

Php fetch 返回字符串而不是布尔“真/假”值

React 钩子需要返回一个值吗?

在 Intellij 中调试时,我可以在返回之前找出返回值吗?

可以在 C++11 中检索线程函数的返回值吗?

PHP:一个函数能知道它是不是被赋值为一个值吗?