我们可以在PHP函数中返回一个String吗?

时间:2018-04-08 21:31:08

标签: php function return-value

我想从PHP函数返回一个字符串。我有两种方法可以做同样的事情,这两种方法都有效。我见过许多类似于方法2的例子,但没有类似于方法1的例子。

使用方法1有什么警告吗?

方法1:

<?php
    function test() {
        if (some condition)
            return 'Some Text';
        }
        else {
            return 'Some Other Text';
        }
    }
    if (test() === 'Some Text') {
        // Do Something
    }
?>

方法2:

<?php
    function test() {

        if (some condition)
            $text = 'Some Text';
        }
        else {
            $text = 'Some Other Text';
        }
        return $text;
    }

    if (test() === 'Some Text') {
        // Do Something
    }
?>

1 个答案:

答案 0 :(得分:3)

它们在功能方面都是等效的。

第二种形式需要额外的临时变量。这是一个微观优化,对你来说不重要,但确实存在。

对Method1的关注是你有多个函数可以退出/返回的地方,如果你没有好的单元测试,遗漏或修改有更大的机会导致你可能找不到的回归覆盖范围或只是简单的回归测试。

它还允许您返回完全不同的内容,对于那些必须在以后修改代码的人来说,这可能会令人费解并且难以理解。

通常有一些函数具有附加条件(if-then-elseif等),其中事情并不那么明确,因此有时会优先考虑形式2。这通常看起来有点不同,因为它取决于设置默认初始化值:

$(document).ready(function() {

  $("#navButton").click(function() {
    $(".navigation").slideToggle("slow", function() {});
  });
  $(window).on('resize', function() {

    if ($(this).width() > 800) {
      $('.navigation').css({
        'display': 'flex'
      });
    } else {
      $('.navigation').css({
        'display': 'none'
      });
    }
  });
});