短回声标签间距的PSR标准


PSR standard for short-echo tags spacing

PSR编码标准非常清楚它们的大多数约定,包括PSR-1中的第一个条目:

PHP代码必须使用长<?php ?>标记或短回显<?= ?>标签;它绝对不能使用其他的标签变体。

,但不清楚的是,最近在我们的团队中受到质疑的是间距,特别是短回声标签。我们通常会在文件顶部的自己的行上看到<?php开始标记,或者如果它是一个内联语句,那么如果没有空格,它将无法解析。所以这里的规则似乎不言自明。

<?php
//tag followed by new line - fine
$obj = new Foo();
?>
<p>Hello <?php echo $obj->printBar(); ?> World</p>
//tag followed by space - fine
<p>Hello <?phpecho $obj->printBar(); ?> World</p>
//tag no space - Parse Error

我的问题是关于短回声标签<?= ?>,在开始标签解析后有或没有空格-但哪一个是PSR标准兼容的?

<p>Hello <?= $obj->printBar(); ?> World</p>
//tag followed by space - parses okay
<p>Hello <?=$obj->printBar();?> World</p>
//tag no space - parses okay

为PHP的长、短打开标签增加一个空格