【发布时间】:2011-02-08 12:39:04
【问题描述】:
我怎样才能有一个boolean 返回函数?
我的意思是在其他编程语言上也是这样。
return true; // return false
【问题讨论】:
-
这正是你在 PHP 中的做法。
我怎样才能有一个boolean 返回函数?
我的意思是在其他编程语言上也是这样。
return true; // return false
【问题讨论】:
难以置信
return true;
例如
function testIfABC($x) {
if ($x === 'ABC') {
return true;
}
return false;
}
虽然这更容易写成:
function testIfABC($x) {
return ($x === 'ABC');
}
它仍然会返回一个布尔值
【讨论】:
<?php
function doSomething() {
return true;
}
你需要的函数可能是这样的:
function check($var, $length) {
return (strlen($var)<=$length) && (isset($var));
}
?>
【讨论】:
这个问题并不完全有道理,因为你还没有问你已经解决的问题。
PHP中的函数可以这样实现。
function check($int) {
if ($int == 3) {
return true;
} else {
return false;
}
}
if (check(3)) echo "Returned true!";
【讨论】:
作为一个更实际的例子,您可以使用任何布尔表达式作为结果:
return ($data != "expected") or ($param == 17);
【讨论】:
从 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;
【讨论】:
我确实理解这个问题,因为在 Visual C# 中,您可以定义一个仅返回 bool 的函数。在 PHP 中情况并非如此。您可以只使用 function blabla($val) { return ($val == "yes" ? true : false); }。不支持“public bool($value) { return true; // false }”
【讨论】: