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

如何在PHP中格式化变量块?,php,coding-style,Php,Coding Style,我只是想知道如果我必须声明一个变量块,我应该选择哪种格式 我多次看到对齐样式: $foo = 'foo'; $bar = 'bar'; $foobar = 'foobar'; $baz = 'baz'; 和一种分配方式: $foo = 'foo'; $bar = 'bar'; $foobar = 'foobar'; $baz = 'baz'; 是否有一个标准化的方法或官方的指导方针?我已经在和中搜索过了,但这些标准似乎没有处理这个问题 如果没有官方的答案,其他语言如何处理这

我只是想知道如果我必须声明一个变量块,我应该选择哪种格式

我多次看到对齐样式:

$foo    = 'foo';
$bar    = 'bar';
$foobar = 'foobar';
$baz    = 'baz';
和一种分配方式:

$foo = 'foo';
$bar = 'bar';
$foobar = 'foobar';
$baz = 'baz';
是否有一个标准化的方法或官方的指导方针?我已经在和中搜索过了,但这些标准似乎没有处理这个问题

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

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

但如果您有意见:

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

PSR对此只字未提,因此通常没有统一的约定。这是个人喜好或公司编码标准的问题


“对齐样式”,正如你所说的,可能看起来更好,但不是每个IDE都能像这样格式化代码(使用内置重构功能),因此它可能会让一些人恼火,因为当你用快捷方式格式化整个文件时,IDE格式化功能会“打破”惯例。

我个人更喜欢第一种样式,它更清晰易读,但这是个人意见

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

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

这很简单,但在编写数千行代码时会有很大帮助:)

由您决定。对齐的作业和注释看起来很漂亮,但它们往往更“维护繁重”。例如,一个工具辅助的重构变量名的更改可以取消整个缩进

除非您仔细维护,否则十年后您可能会得到如下代码:

$foobiedoobie     = 'foo';
$barquax    = 'bar';
$foob = 'foobar';
$boob        = 'baz';
。。。就好像有人在你仔细的格式化过程中对你进行了一次驾车射击。我以前的工作场所是这样的——在一个拥有庞大代码库的团队环境中,很难保持这些样式的良好外观,尤其是在版本控制环境中,在这种环境中,您可能会遇到这些“按需驾驶射击”,并且不得不面对一个艰难的决定,即保持原样(以避免提交超过必要的代码更改),或者修复它(并冒着惹恼团队中其他人的风险)

所以这些东西一开始看起来很漂亮,但是除非你保持它们的美丽,否则它们会在以后的岁月里变得很难看

同时,采取这样一种风格:

$foo = 'foo';
$bar = 'bar';
$foobar = 'foobar';
$baz = 'baz';
。。。而且它并没有那么漂亮——或者至少有些人会这么认为。但是,无论如何使用重构/文本查找和替换工具重命名变量,它看起来都几乎一样


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

这是一个编码品味、风格,还有选择。为了获得许可,它们在我看来都很好。我不认为有什么像作业风格的编码。第一种更可取,因为它看起来很好,可读性更强。这两种方法都没有额外的优点。谢谢你的长篇评论。它被怀疑描述得很好。我的问题是,我认为我必须以一种更干净的方式重新构造我的程序,例如,使用一种额外的方法来减少变量的数量。我也不想提交任何行,因为我只编辑了一个单词,因此我个人更喜欢不缩进值的方式。我后来也选择了后一种样式。我一开始的风格是对齐的,但我经历了那种团队经验。但每个人的里程数可能会有所不同。在我的例子中,我与一些SLOB一起工作,他们只使用VisualAsist之类的工具,在可能的多个文件上重命名标识符,并在不修复缩进的情况下提交代码。如果您与一个更认真的团队合作,该团队有一个适当的编码标准来指定如何格式化,那么这可能不会有什么大不了的。也就是说,第二种风格对我来说是安全的——有点家常,但它没有。。。。。。那就是堕落的危险。此外,还可以很容易地找出变量注释的位置,例如(可以将注释放在变量的正上方,而不破坏对齐)。这是一种非常“朴素”的风格,你通常不会在这些方面犯太大的错误。
$foo = 'foo';
$bar = 'bar';
$foobar = 'foobar';
$baz = 'baz';