PHP的'return'语句默认是否返回布尔值?

问题描述

我不太确定该怎么问,但是我有以下PHP函数

<?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)) {
    ...
}