PHPStorm 缺少返回语句

标签 php phpstorm

这个函数

public function confirmation() {
  if (is_array($this->modules)) {
    if (isset($GLOBALS[$this->selected_module]) && 
        is_object($GLOBALS[$this->selected_module]) && 
        ($GLOBALS[$this->selected_module]->enabled)) {
      return $GLOBALS[$this->selected_module]->confirmation();
    }
  }
}

发出通知

Missing return statement

是否有任何解决方案可以使返回值超出括号范围?

最佳答案

这里是条件语句中的单个 return。如果不满足条件,则执行将到达函数末尾而不会遇到 return 语句,这相当于 return null

因此,您可以做的一件事是使return null 显式:

if (...) {
    return $GLOBALS[$this->selected_module]->confirmation();
}
else {
    // Can also do this without an "else", it's a matter of style
    return null;
}

您还可以使用三元运算符将条件语句移动到返回值表达式中:

return is_array($this->modules) &&
       isset($GLOBALS[$this->selected_module]) && 
       is_object($GLOBALS[$this->selected_module]) && 
       $GLOBALS[$this->selected_module]->enabled)
       ? $GLOBALS[$this->selected_module]->confirmation()
       : null

然而,对于三元运算符来说,这可以说是太多了,无法优雅地处理,因此可读性可能是这里的一个问题。

关于PHPStorm 缺少返回语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20029758/

相关文章:

php - 使用身份验证时 Google map 地理编码 API 不起作用

javascript - Jquery:解析 HTML

php - 如何使用 php MySQL 将多条记录从 HTML 表单插入到表中?

git - 如何使用 PhpStorm 和 Git 忽略文件?

php - 如何在 WSL 上使用 Xdebug + PhpStorm 调试 Symfony 4?

php - 如何通过 mail() 使用 Gmail 发送电子邮件?我把密码放在哪里?

netbeans - 如何通过 Netbeans/PHPStorm/PHPUnit 集成从代码覆盖率中排除文件/代码块

PhpStorm 检查错误或错误代码? try block 中未抛出的异常是意外的

ide - 如何让phpstorm默认显示行号?

php - Laravel : unforeseen problems from echoing HTML in controller vs. 传递数据查看?