【问题标题】:Is using alternative PHP syntax for control structures PSR compliant? (when mixed with HTML)是否对 PSR 兼容的控制结构使用替代 PHP 语法? (与 HTML 混合时)
【发布时间】:2020-01-27 11:28:22
【问题描述】:

我在 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; ?>

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

【问题讨论】:

  • 这对我来说看起来不错,不过,我个人已经转向使用 twig,使语言更加独立,但这是个人喜好
  • 详细说明@treyBake 所说的:PHP 和HTML 混合的示例(以及因此,人们使用)的流行是PHP 引起了一些坏名声的原因。请将关注点与 TWIG/PUG/Handlebars/Mustache 或任何模板引擎分开。这将使您的代码更易于维护。

标签: php psr-1 php-fig psr-12


【解决方案1】:

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

每个结构的主体必须用大括号括起来。这标准化了结构的外观,并减少了在向正文中添加新行时引入错误的可能性。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    • 2015-03-13
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    • 2017-04-10
    • 1970-01-01
    相关资源
    最近更新 更多