问题描述
<?PHP
function checkAge($age) {
return ($age >= 21);
}
?>
可以在以下条件下使用:
<?PHP
if(checkAge(21)) {
echo 'welcome to the club';
}
else {
echo 'sorry! you are younger than 21';
}
?>
在定义函数时,我只是说return ($age >= 21)
,它似乎正在返回'true'。这是否意味着像这样使用return
会返回布尔值?
很抱歉,如果我不清楚,这真的使我感到困惑:(
提前谢谢!
解决方法
return
返回您提供的任何内容。如果您给它的是表达式,则将对该表达式求值并返回其结果。在这里,您将返回一个计算结果为布尔值的表达式,因此,是的,您的函数将返回true或false。
因此,您的函数checkAge
与:
// Just to explain. Don't do this!
function checkAge($age) {
if ($age >= 21) {
return true;
} else {
return false;
}
}
但是:
PHP的'return'语句默认是否返回布尔值? 不。
您传递给它的东西将被返回。如果未传递任何内容,则将返回null
。
return
停止当前模块的执行,并将控制权交还给调用代码。请参阅-https://www.php.net/manual/en/function.return.php。
如果从函数中调用,则return语句立即 结束当前函数的执行,并返回其参数为 函数调用的值。
您获得的布尔值来自比较表达式$age >= 21
。比较表达式始终返回布尔值。请参阅-https://www.php.net/manual/en/language.expressions.php#language.expressions
作为一个例子,这两个代码在功能上是相同的。他们都比较两个值并返回一个布尔值。
<?php
if ($age >= 21) {
...
}
if (checkAge(21)) {
...
}