【发布时间】:2010-05-07 13:31:36
【问题描述】:
我已经在PHP 上工作了一段时间,但今天当我看到这个时,它对我来说是新的:
if(preg_match('/foo.*bar/','foo is a bar')):
echo 'success ';
echo 'foo comes before bar';
endif;
令我惊讶的是,它也可以毫无错误地运行。谁能赐教?
谢谢大家:)
【问题讨论】:
-
正如下面的答案所说,这是一种替代语法。阅读 IMO 也非常痛苦,请在您自己的代码中避免这种情况。
-
这种语法在你经常打开和关闭并且中间使用html的时候用在模板中。即使在这些情况下,它也是可怕且难以理解的,应该完全避免。
-
@Lo'oris,我不同意你的看法。如果您问我,在模板中使用它可以提高可读性:例如,请参阅 stackoverflow.com/questions/2788891/strange-php-syntax/…。
-
我同意那些反对它的人。即使在模板中,正如 Lo'oris 所提到的,它对可读性几乎没有任何作用。但我遇到的主要问题是我没有找到一个 IDE 突出匹配 if/endif 或 foreach/endforeach 或任何其他替代语法标签。仅出于这个原因,就应该避免它。 Netbeans 将突出显示匹配的大括号,即使它们跨越 块,但它不知道如何使用备用大括号。我认为提出这个问题的事实进一步证明了应该避免它,以防止混淆。
标签: php syntax if-statement alternate control-structure