【问题标题】:Does PHP's 'return' statement return a boolean by default?PHP的'return'语句是否默认返回布尔值?
【发布时间】:2020-12-03 20:45:57
【问题描述】:

我不太清楚如何问这个问题,但是我有以下 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 &gt;= 21),它似乎返回“真”。这是否意味着像这样使用return 会返回一个布尔值?

如果我不清楚,我很抱歉,这真的让我很困惑:(

提前谢谢你!

【问题讨论】:

  • 简短的回答是肯定的。实际上,当您执行if ($age &gt;= 21) 时,将首先评估$age &gt;= 21。而if 使用这个值来选择分支。
  • 下面的答案告诉你你在寻找什么,所以我不会重复。但出于好奇,问一下会很有趣,如果不返回布尔值,您希望该代码做什么?
  • @ADyson 我正在上一门在线课程,老师说要建立一个适用于夜总会的功能,并根据您的年龄告诉您是否允许进入.按照老师的逻辑,我编写了函数和条件,但我不确定它为什么起作用。我猜是因为我认为return 语句本身就是返回布尔值“默认情况下”的语句(因此我在这里提出问题),并且没有注意到它实际上是比较表达式$age &gt;= 21,就像我刚刚学到的那样。

标签: php return


【解决方案1】:

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 将被返回。

【讨论】:

    【解决方案2】:

    return 停止当前模块的执行并将控制权交还给调用代码。见 - https://www.php.net/manual/en/function.return.php

    如果从函数内部调用,则立即返回语句 结束当前函数的执行,并将其参数返回为 函数调用的值。

    你得到的布尔值来自你的比较表达式$age &gt;= 21。比较表达式总是返回一个布尔值。见-https://www.php.net/manual/en/language.expressions.php#language.expressions

    例如,这两段代码在功能上是相同的。它们都比较 2 个值并返回一个布尔值。

    <?php
    
    if ($age >= 21) {
        ...
    }
    
    if (checkAge(21)) {
        ...
    }
    

    【讨论】:

      猜你喜欢
      • 2012-08-16
      • 1970-01-01
      • 2015-05-03
      • 1970-01-01
      • 1970-01-01
      • 2014-12-19
      • 2012-05-09
      • 1970-01-01
      • 2022-12-17
      相关资源
      最近更新 更多