如果是,否则如果在PHP中,冒号样式

Dav*_*vid 12 php

我喜欢使用PHP的一个函数是冒号样式的if语句(我不知道它实际上是什么叫.)

<?php if(something):?>
    <html stuff>
<?php endif;?>
Run Code Online (Sandbox Code Playgroud)

但我最近尝试用多种情况做到这一点:

<?php if(something):?>
    <html stuff>
<?php else if(something):?>
    <html stuff>
<?php endif;?>
Run Code Online (Sandbox Code Playgroud)

我在第三行(else if)上得到一个错误:

意外的T_IF

如果这样,是否可以制作if-else?

Dav*_*vid 12

我能够让它发挥作用.

在这个非常具体的案例中,else if不是同义词elseif.

elseif用于else if修复该问题.

<?php if(something):?>
    <html stuff>
<?php elseif(something):?>
    <html stuff>
<?php endif;?>
Run Code Online (Sandbox Code Playgroud)

来自PHP.net:

注意:请注意elseif和else在使用大括号时只会被视为完全相同,如上例所示.使用冒号来定义if/elseif条件时,如果是两个单词,则不能将else分开,否则PHP将因解析错误而失败.

  • 可能值得包括[本评论](http://php.net/manual/en/control-structures.elseif.php#115851)关于*为什么*它不起作用的解释.即`else if`实际上是单个语句`else`,其语句恰好是`if`,而冒号在替代语法中不是可选的,与普通语法中的{}不同. (3认同)