1

在布尔函数中显式“返回 FALSE”还是“返回 TRUE”好

示例 A:

  function check($link){
  if(isset($link)){
  return TRUE;
  }else{
  return FALSE;
  }

示例 B:

  function check($link){
  if(isset($link)){
  return TRUE;
  }

默认情况下 php 函数返回 FALSE,所以如果我提到返回 FALSE 或忽略它作为示例 B 是否很好

所以如果我检查它的真假

 if(check('eqweqw')){
  echo 'its set';
 }else{
 echo 'its not';
 }
4

4 回答 4

2

示例 A 是更好的做法,因为它明确说明了代码的意图。如果阅读您的代码的人不知道默认返回 FALSE,他们可能会认为您的代码有错误。

记住:编写代码,以便其他人可以轻松阅读和理解。

于 2012-10-11T07:51:47.757 回答
0

您可以将其简化为:

function check($link){
  return isset($link);
}

但这听起来很像它在功能上等同于 isset,所以也许你应该改用它。至于最佳实践问题,如果 PHP 在 isset 上返回 bool true/false,那么您也可以这样做。

于 2013-11-06T21:09:29.740 回答
0

手册

注意:如果未提供参数,则必须省略括号并返回 NULL。

如果您希望函数返回false,则必须显式返回 false。由于 null 不等于 false 构造 B 在某些情况下会失败:

if(check('eqweqw') === false){
 echo 'its not';
 }else{
  echo 'its set';
 }

its set在构造 B 中返回

于 2012-10-11T07:52:21.857 回答
0

在您的示例中,最好在所有情况下都返回布尔值,而不是只返回一个true或什么都不返回。

这是我的做法:

function check($link){

  $result = false;

  if(isset($link)){
     $result = true;
  }

  return $result;
}

尽量避免在你的代码中有很多点return,并尽可能有一个退出点。

于 2012-10-11T07:55:52.730 回答