php elseif 有空格吗,php中elseif 和else if的区别

@(黑线)以前貌似看到if这里,就直接跳了,可是今天再读文档,又发现了点东西...

@(乖)可能你已经知道了php存在elseif 和else if,保留了c的风格。

if($a == 1)echo $a;

elseif /else if(...)...

单句可以不用花括号包裹

这是摘录官方文档的话Note: 必须要注意的是 elseif 与 else if 只有在类似上例中使用花括号的情况下才认为是完全相同。如果用冒号来定义

if/elseif 条件,那就不能用两个单词的 else if,否则 PHP 会产生解析错误。<?php

/* 不正确的使用方法: */

if ($a > $b):

echo $a." is greater than ".$b;

else if ($a == $b): // 将无法编译

echo "The above line causes a parse error.";

endif;

/* 正确的使用方法: */

if ($a > $b):

echo $a." is greater than ".$b;

elseif ($a == $b): // 注意使用了一个单词的 elseif

echo $a." equals ".$b;

else:

echo $a." is neither greater than or equal to ".$b;

endif;

?>

说来惭愧,原先是不知道php还有endif这样的写法的,以前是学vb的时候看到这样的风格,以及看typecho文件的时候这样的写法,我还以为是typecho特别处理过的。∠( ᐛ 」∠)_

以前习惯<?php if ($a == 5){ ?>

A ist gleich 5

如今知道这样也行<?php if ($a == 5): ?>

A ist gleich 5

而且你还可以这样的混合写法

if($a):

echo $a;

else {

echo $c;

}

?>

if($a) {

echo $a;

}

else:

echo $c;

endif;

?>

但是这样的嵌套

if($a):

echo $a;

if($b) {

echo $b;

}

else:

echo $c;

endif;

?>

会有意想不到的的bug出现。不支持在同一个控制块内混合使用两种语法。

看到这里,再说下php 流程控制的替代写法

PHP 提供了一些流程控制的替代语法,包括 if,while,for,foreach 和 switch。替代语法的基本形式是把左花括号({)换成冒号(:),把右花括号(})分别换成 endif;,endwhile;,endfor;,endforeach; 以及 endswitch;。

因此有上面的endifWarning switch 和第一个 case 之间的任何输出(含空格)将导致语法错误。例如,这样是无效的:<?php switch ($foo): ?>

...

<?php endswitch ?>而这样是有效的,因为 switch 之后的换行符被认为是结束标记 ?> 的一部分,所以在 switch 和 case 之间不能有任何输出:<?php switch ($foo): ?>

...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值