1

我注意到 PHP/Wordpress 代码中有一些奇怪的编码风格:

1)在函数开始时返回:

我很惊讶我经常看到在函数开始时返回的 PHP/Wordpress 代码。例如:

function dosomething() {
   if (!current_user_can($priv)) {
       return;
   }
   .... continued code

用于代替通常被认为是好的做法,即很少有多个返回(它们基本上是 goto):

function dosomething() {
    if (current_user_can($priv)) {
        ... do something
    }
    ... any finishing code
}

2) if 中缺少括号

在大多数其他语言中,不带括号的单行 if/else 语句被认为是混乱/危险的,因为其他行可能看起来会运行,而实际上它们并没有运行。然而,我已经在 PHP/Wordpress 中看到过多次使用它。

我想知道这些不同的样式是否具有性能优势,或者使用它们的其他具体原因?

4

2 回答 2

2

我会说这是值得商榷的。如果您的单行条件没有大括号,则处理上的差异非常小,不可能提高性能。

函数开头的 return 是为了防止它在不满足该条件的情况下甚至运行该进程。您可能已经通过查看代码知道了这一点,但可能没有考虑到该函数将在返回之前进行评估,因此您的函数可能有几十个条件,它在第一个条件之后永远不会满足。如果你不需要,处理这些是没有意义的。

顺便说一句,这根本不是 wordpress 特有的。我到处都看到过这样的做法。

于 2012-10-31T00:58:45.687 回答
1

两者都与性能无关。第一个只是保证没有授权的用户不能处理函数中的任何内容(以确保他们不会在您的示例中运行“...任何完成代码”),第二个是简单 if/else 语句的样式偏好。

于 2012-10-31T00:55:53.393 回答