PHP Zend Framework 编码标准,哪种方法更具可读性?

标签 php zend-framework coding-style

这是一个主观问题,我需要您对编码标准和格式实践的感受和想法。

PHP Zend 编码标准要求像这样编写多行函数调用:

$returnedValue = $object->longMethodName(
    $argument1,
    $otherArgument,
    42
);

我认为下面的方法更具可读性:

$returnedValue = $object->longMethodName($argument1,
                                         $otherArgument,
                                         42);

因为左边只有一行,说明这只是一条语句,参数更接近方法名。

更喜欢哪一个?

最佳答案

第二种方法给您留下了一个额外的问题:行长度。 Zend 编码标准建议“任何一行 PHP 代码的最大长度为 120 个字符。”

这意味着,如果您想要好的(长的、描述性的)变量名称,并且您恰好有一个用于返回值、对象、一个好的命名函数和一个长参数,您更有可能达到 120 个字符的限制。

除此之外,根据您的标准,最大长度可能只有 80 个字符或介于两者之间。

此外,如果反复使用,我更喜欢第一个

$returnedValue = $object->longMethodName(
    $argument1,
    $otherArgument,
    42
);
$returnedValue = $object->longMethodName(
    $argument1,
    $otherArgument,
    42
);
$returnedValue = $object->longMethodName(
    $argument1,
    $otherArgument,
    42
);
$returnedValue = $object->longMethodName(
    $argument1,
    $otherArgument,
    42
);

$returnedValue = $object->longMethodName($argument1,
                                         $otherArgument,
                                         42);
$returnedValue = $object->longMethodName($argument1,
                                         $otherArgument,
                                         42);
$returnedValue = $object->longMethodName($argument1,
                                         $otherArgument,
                                         42);
$returnedValue = $object->longMethodName($argument1,
                                         $otherArgument,
                                         42);

就像 Pekka 所说的那样,少跳眼。

关于PHP Zend Framework 编码标准,哪种方法更具可读性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2382593/

相关文章:

php - 如何使用特定的 UTC 更改时区 laravel 5.4 版

php - 使用 PHP 获取 Linux 中的当前带宽使用情况

php - MySQL 查询到 Zend 数据库选择

iphone - 用于学习最佳编码实践的开源 iOS 项目

ruby - 如何避免类和全局变量

ASP.NET 中母版页的 PHP 等效项

php - 使用 INNER JOIN/JOIN 进行多个查询

php - Zend Framework - 直接使用 SQL

zend-framework - 如何在基于 Zend Framework 的应用程序中的应用程序 Bootstrap 中使用模块中的模型类?

ios - 带有加载事件指示器的 UITableView 子类