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;的主要内容,如果未能解决你的问题,请参考以下文章
如果函数返回多种类型,我可以声明一个函数返回值吗? [复制]