在php布尔函数中设置返回类型的惯例

时间:2012-10-11 07:48:54

标签: php performance boolean boolean-logic

在布尔函数中显式“返回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 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

来自manual

  

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

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

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

将在构造B中返回its set

答案 2 :(得分:0)

在你的例子中,最好在所有情况下都返回一个布尔值,而不仅仅是true或者没有。

我将如何做到这一点:

function check($link){

  $result = false;

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

  return $result;
}

尽量避免代码中有很多分数return,并且尽可能只有一个退出点。

答案 3 :(得分:0)

您可以将其缩小为:

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

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