是否为符合 PSR 的控制结构使用替代 PHP 语法? (与 HTML 混合时)

Is using alternative PHP syntax for control structures PSR compliant? (when mixed with HTML)

我浏览了 PHP-Fig 网站,寻找任何与控制结构的替代 PHP 语法相关的 PSR,但没有找到任何相关信息。

替代语法是这样的,例如:

<?php foreach ($arr as $foo) : ?>
    <h1>block start</h1>
    <?php if ($foo === 'test') : ?>
        <a>Case1</a>
    <?php elseif ($foo === 'test2') : ?>
        <a>Case2</a>
    <?php else : ?>
        <a>CaseElse</a>
    <?php endif; ?>
    <h1>block end</h1>
<?php endforeach; ?>

那么它是没有定义因此可以使用,还是因为在编码风格部分没有提到它而不符合要求?

根据 PSR-12(控制结构)的第 5 节:

The body of each structure MUST be enclosed by braces. This standardizes how the structures look and reduces the likelihood of introducing errors as new lines get added to the body.

这意味着 endif、endwhile、endfor、endforeach、endswitch 不符合 PSR-12。

如果 PSR-12 对此有更明确的说明,那将会很有帮助,因为很容易忽略或误解这一点。