0

这或多或少是一个可读性、可维护性和/或最佳实践类型的问题。

我想获得对某事的 SO 意见。return从函数中的多个点开始是不好的做法吗?例如。

<?php

  // $a is some object

  $somereturnvariable = somefunction($a);

  if ($somereturnvariable !== FALSE) {
        // do something here like write to a file or something
  }

  function somefunction($a) {
        if (isset($a->value)) {
              if ($a->value > 2) {
                    return $a->value;
              } else {
                    return FALSE;
        } else {
              // returning false because $a->value isn't set
              return FALSE;
        }
  }
  ?>

或者应该是这样的:

<?php

  // $a is some object

  $somereturnvariable = somefunction($a);

  if ($somereturnvariable !== false) {
        // do something here like write to a file or something
  }

  function somefunction($a) {
        if (isset($a->value)) {
              if ($a->value > 2) {
                    return $a->value;
              } 
        } 

        return FALSE
  }
  ?>
4

1 回答 1

1

作为实践,我总是尝试在任何函数中从 ONE 点返回,这通常是最后一点。我将它存储在一个变量$retVal中,并在函数末尾返回它。它使代码对我来说看起来更理智。

话虽如此,在某些情况下,在您的函数中作为第一行检查 var 是否为空,如果是,则返回。在这种情况下,保留该变量是没有意义的,然后添加额外的检查以跳过所有函数代码以最终返回该变量。

所以......总之,这两种方式都有效。这总是取决于情况是什么以及您更喜欢什么。

于 2013-05-03T18:34:34.997 回答