cod*_*ict 41
缺少分号后break
了解为什么你的程序行为方式非常有趣.
breakPHP中的一般语法是:
break Expression;
Run Code Online (Sandbox Code Playgroud)
表达式是可选的,但如果存在,则其值表示要分解多少嵌套的封闭结构.
break 0;并且与... break 1;相同break;
你的代码相当于
if($a==3)
break print"$a ";
Run Code Online (Sandbox Code Playgroud)
现在printPHP中的函数总是返回1.因此它相当于
if($a==3)
break 1;
Run Code Online (Sandbox Code Playgroud)
所以,当$a是3打印的价值和休息.
建议使用大括号括起条件或循环的主体,即使主体有一个语句.在这种情况下,将if主体括在大括号中:
if($a==3) {
break
}
print"$a ";
Run Code Online (Sandbox Code Playgroud)
会给出一个语法错误:PHP期望一个;但是找到一个}
以上所有内容也适用于PHP continue.所以该计划
for($a=0;$a<10;++$a)
{
if($a==3)
continue
print"$a ";
}
Run Code Online (Sandbox Code Playgroud)
也3出于类似的原因打印.
Oct*_*ean 19
你在休息结束时错过了一个分号.;)
即使使用分号,它也不会像你期望的那样工作,因为它会从数0到数2.你必须像这样写它才能获得1 2.
<?php
for($a=1;$a<10;++$a)
{
if($a==3)
break;
print"$a ";
}
?>
Run Code Online (Sandbox Code Playgroud)
注意$ a现在是for循环初始化中的一个.
编辑:我注意到你应该注意的另一件事.在for循环控件中,您有一个预增量(++$a).这基本上意味着PHP增加值$a然后返回$a.另一个选项是post-increment($a++)$a返回获取,然后增加1.
在你的情况下,两种方式都会得到正确的输出.
这有时非常重要.要时刻铭记在心.