【发布时间】:2015-07-27 04:20:09
【问题描述】:
我正在加班重构大量代码库。从长远来看,我们将在课堂上开发整个系统,但与此同时,我正在利用这个机会来提高我的 PHP 技能并改进我们在数百个网站上使用的一些遗留代码。
随着时间的推移,我已经阅读了关于如何最好地从自定义函数返回数据的相互矛盾的文章,通常争论分为两类,一类关注最佳技术实践,另一类关注易于阅读和演示。
对于从自定义 PHP 函数返回时您认为最佳实践的意见(详细说明),我很感兴趣。
例如,使用这个基本理论函数,我不确定以下哪一个作为更好的标准;
接近a。
填充一个返回变量并在函数结束时返回它:
<?php
function theoreticalFunction( $var )
{
$return = '';
if( $something > $somethingelse ){
$return = true;
}else{
$return = false;
}
return $return;
}
?>
方法 b。
在每个端点返回:
<?php
function theoreticalFunction( $var )
{
if( $something > $somethingelse ){
return true;
}else{
return false;
}
}
?>
一个可能的重复项可能是What is the PHP best practice for using functions that return true or false?,但这并不限于简单的真或假,尽管我上面的基本示例。
我查看了 PSR 指南,但没有看到任何内容(但我可能错过了它,所以请随时将我指向 PSR 并提供参考 :))。
扩展原来的问题:
用于返回的方法是否因预期/期望的输出类型而异?
此方法是否会因使用过程或面向对象的编程方法而改变?正如这个问题所示,面向对象带来了自己的怪癖,以进一步扩展可能的格式/呈现选项Best practices for returns methods in PHP
请尽量在您的解释中明确说明,我对您为什么选择您喜欢的方法以及是什么(如果有的话)让您选择它而不是其他方法感兴趣。
【问题讨论】:
-
我更喜欢使用方法 B。例如,我有一个用户需要登录的功能,所以我的第一行会检查它。我不想构建一个巨大的 if 语句来确保脚本不执行其余部分。所以这就是为什么我更喜欢使用方法 B
-
有人主张函数中的单一出口点(最后只有一个
return),还有人主张失败/早退我>。这只是根据具体情况的意见和可读性/可理解性问题。几乎没有任何客观的技术答案。 -
我认为这最终会是:主要基于意见,因为这取决于你想做什么;编码员的经验;
-
这是有道理的@deceze,我确实想知道我是否会得到主要“这取决于所讨论的功能,具体情况”的答案。也许这里没有辩论?这可以解释 PSR 指南中缺少有关此主题的信息,或者至少就我所见而言。
-
顺便说一句,我们甚至不要开始讨论你对空格和括号的可怕使用...... ;-P
标签: php function methods return code-standards