Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php PSR-2控制结构的开口支撑_Php_Psr 2 - Fatal编程技术网

Php PSR-2控制结构的开口支撑

Php PSR-2控制结构的开口支撑,php,psr-2,Php,Psr 2,有一件事我正试图理解,为什么在新行的类和方法有花括号,而其余的没有。我想说,如果花括号总是在新的一行上,那么阅读代码就容易多了 class Foo extends Bar implements FooInterface { public function sampleFunction($a, $b = null) { if ($a === $b) { } 有人能解释一下背后的逻辑吗: 控制结构的开口支撑必须位于同一行上,而闭合支撑必须位于主体后的

有一件事我正试图理解,为什么在新行的类和方法有花括号,而其余的没有。我想说,如果花括号总是在新的一行上,那么阅读代码就容易多了

class Foo extends Bar implements FooInterface
{
    public function sampleFunction($a, $b = null)
    {
        if ($a === $b) {
        }
有人能解释一下背后的逻辑吗:

控制结构的开口支撑必须位于同一行上,而闭合支撑必须位于主体后的下一行上


我对这里的推理的理解基本上是为了防止连续代码块变得过长

例如,假设我有一个用PSR-2风格编写的50行函数。如果该函数包含10个
If()
条件和5个循环,那么根据您的规则,我的函数将有65行

因为它是一个单一的函数,所以我需要能够将它作为一个单一的实体来使用,所以能够同时看到它真的很有帮助。使用50行函数,这是可行的。如果函数长度为65行,则会变得更加困难

事实上,现在查看我的编辑器窗口,我一次可以看到30行,因此即使是50行函数也有点太长,如果不调整IDE中固定面板的大小或移除面板,就无法轻松管理

现在我知道干净的代码规则会说一个50行的函数太长了,需要重构。我同意这一点。但是猜猜看:50行或更多行的函数非常常见;我必须一直与他们打交道,他们身上不必要的空白越少,工作就越容易

但归根结底,这只是对其背后根本原因的一种解释

PSR-2采用这种方式的真正原因是,这就是意见一致性下降的原因。他们调查了所有框架和其他建立PHP编码标准的人。所有这些不同的标准之所以存在,是因为人们坐下来思考如何最好地格式化他们的代码。他们不同意,因为这是一个固执己见的主题,但有广泛的一致领域,这就是形成PSR标准的原因。

有几个原因

  • 民主/大众意见。一项民意调查是从这些项目中进行的,大多数项目都使用这种支架风格。您可以通过(搜索“大括号”)阅读更多内容
  • 历史用法。这种风格被称为Kernighan和Ritchie,在C语言中广泛流行(出于各种原因,请参阅维基百科文章)。与许多语言一样,PHP在语法和风格上都深受C语言的影响。(另外,PHP主要是用C编写的!)
  • 视觉区分。当扫描大段代码时,更容易发现函数和类的起始位置,并将它们与控制块区分开来

  • PSR-2是一种观点。这不是对的,也不是错的;这只是做事的一种方式。这是由Conconsus的意见决定的,并且基于PHP世界中各种现有的编码标准,但是很多人做的事情都不一样,有些人甚至按照你建议的方式做。他们现在基本上适应了这个标准。但是如果你不喜欢它,你就不必跟着它。然而,你会发现,这些天大多数其他人都在关注它,所以你会孤注一掷。