PHP';s';返回';语句是否默认返回布尔值?
我不太确定如何问这个问题,但我有以下PHP函数:PHP';s';返回';语句是否默认返回布尔值?,php,return,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'; } ?> 在定义函数时,我只是
<?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。
因此,您的功能检查与以下功能相同:
// Just to explain. Don't do this!
function checkAge($age) {
if ($age >= 21) {
return true;
} else {
return false;
}
}
但是:
PHP的“return”语句是否默认返回布尔值?
没有
您传递给它的是将返回的内容。如果未传递任何内容,则将返回null。返回
停止当前模块的执行,并将控制权返还给调用代码。请参阅-
如果从函数中调用,返回语句将立即
结束当前函数的执行,并将其参数返回为
函数调用的值
您得到的布尔值来自比较表达式$age>=21
。比较表达式始终返回布尔值。请参阅-
例如,这两段代码在功能上完全相同。它们都比较两个值并返回一个布尔值
<?php
if ($age >= 21) {
...
}
if (checkAge(21)) {
...
}
简短的回答是肯定的。实际上,如果($age>=21),那么
,$age>=21
将首先计算。如果使用此值选择分支,则。下面的答案告诉您要查找的是什么,因此我不再重复。但出于好奇,我想问一下,如果不返回布尔值,您希望代码做什么?@ADyson我正在参加一个在线课程老师说要为夜总会建立一个函数,根据你的年龄告诉你是否可以进入。按照老师的逻辑,我写了函数和条件,但我不确定它为什么会起作用。我猜是因为我认为return
语句本身就是retu语句默认情况下使用布尔值(因此我在这里提出问题),但没有注意到它实际上是比较表达式$age>=21
,就像我刚刚学到的那样。