如何格式化 PHP 中的变量块?

How to format a block of variables in PHP?

我只想知道如果我必须声明一个变量块,我应该更喜欢哪种格式化方式。

对齐方式看了好几遍:

$foo    = 'foo';
$bar    = 'bar';
$foobar = 'foobar';
$baz    = 'baz';

和赋值风格:

$foo = 'foo';
$bar = 'bar';
$foobar = 'foobar';
$baz = 'baz';

是否有标准化的方法或官方指南?我已经在 PSR-1 and PSR-2 中搜索过这个,但似乎这些标准没有处理这个问题。

如果没有官方答案,其他语言如何处理这个问题,为什么他们更喜欢他们的处理方式?

这取决于上下文。 例如(来自 Zend Framework):

    $this->_mode             = $this->_detectMode();
    $this->_homeDirectory    = $this->_detectHomeDirectory();
    $this->_storageDirectory = $this->_detectStorageDirectory();
    $this->_configFile       = $this->_detectConfigFile();

但如果您有意见:

/**
 * @var string
 */
protected $_storageDirectory = null;
/**
 * @var string
 */
protected $_configFile = null;

PSR对此只字未提,所以大体上没有统一的约定。这是个人喜好或公司编码标准的问题。

"Alignment-style",正如你所说,可能看起来更好,但并不是每个 IDE 都可以像这样格式化代码(使用内置重构功能),因此它可能会让某些人感到恼火,因为 IDE 格式功能将 "broke" 使用快捷方式格式化整个文件时的惯例。

个人比较喜欢第一种,更清晰易读,但纯属个人意见

我的建议是给你的变量一个后缀,以便很快知道它们的类型:

$vari = 5;              # i => integer
$vara = array("hello"); # a => array
$vars = "hello";        # s => string
// ...

它很简单,但是当您编写数千行代码时会有很大帮助:)

由你决定。对齐的作业和评论往往看起来很漂亮,但往往更"maintenance-heavy"。例如,变量名称的工具辅助重构更改可能会影响整个缩进。

除非你仔细维护,否则十年后你的代码可能会像这样:

$foobiedoobie     = 'foo';
$barquax    = 'bar';
$foob = 'foobar';
$boob        = 'baz';

... 就好像有人在你仔细的格式化过程中偷偷摸摸地开枪一样。我以前的工作场所就是这样——在代码库非常大的团队环境中,很难让这些风格看起来很好,尤其是在版本控制环境中,你可能会遇到这些 "drive-by shootings" 并且不得不面对困难决定保持原样(以避免提交不必要的代码更改),或修复它(并冒着惹恼团队中其他人的风险)。

所以这些一开始看起来真的很漂亮,但除非你保持它们的美丽,否则它们会随着时间的推移变得非常丑陋。

同时,采取这样的风格:

$foo = 'foo';
$bar = 'bar';
$foobar = 'foobar';
$baz = 'baz';

...它并没有那么漂亮——或者至少有些人可能这么认为。但无论使用 refactoring/text 查找和替换工具如何重命名变量,它看起来都几乎相同。

它可以说不是那么漂亮,但它几乎可以保证老化,而前者只有在您积极维护它(或不对代码进行任何更改)的情况下才会老化。