这里列出一些不同的以及经常被考到的细节:
1>流程控制的替代语法(pascal的风格)
主要用在if,while,for,foreach 和 switch语句中。替代语法的基本形式是把左花括号({)换成冒号(:),把右花括号(})分别换成 endif;,endwhile;,endfor;,endforeach; 以及 endswitch;。
例(1):
if ($a == 5):
/*dosomething1*/
/*dosomething1*/
endif;
就等同于:
if ($a == 5){
/*dosomething1*/
/*dosomething1*/
}
例(2):
if ($a == 5):
echo “a equals 5”;
echo “…”;
elseif ($a == 6):
echo “a equals 6”;
echo “!!!”;
else:
echo “a is neither 5 nor 6”;
endif;
2>for语句(经常考,并且彻底的明白也是必要的).
格式:(支持`:`……`endfor;`代替{}的形式)
for (expr1; expr2; expr3)
statement
运行过程:
第一个表达式(expr1)在循环开始前无条件求值一次。
expr2 在每次循环开始前求值。如果值为 TRUE,则继续循环,执行嵌套的循环语句。如果值为 FALSE,则终止循环。
expr3 在每次循环之后被求值(执行)。
等同的while语句为:
expr1;
while(expr2):
expr3;
endwhile;
3>break的不同。
break的作用是:结束当前 for,foreach,while,do-while 或者 switch 结构的执行。
同时break后面可以跟一个数字来决定跳出几层循环。break 1;为跳出1层循环。
我不知道c里面有没有,因为我没有c语言的系统的书。
4>foreach
格式:
a.foreach (array_expression as $value)
statement
b.foreach (array_expression as $key => $value)
statement
说明:
a格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。
b格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key。
注意:
a.当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在 foreach 循环之前调用 reset()。/*reset(array &array):把array的内部指针移动到数组array的第一个单元并返回值*/
b.除非数组是被引用,foreach 所操作的是指定数组的一个拷贝,而不是该数组本身。因此数组来源gaodaima#com搞(代@码网指针不会被 each() 结构改变,对返回的数组单元的修改也不会影响原数组。不过原数组的内部指针的确在处理数组的过程中向前移动了。假定 foreach 循环运行到结束,原数组的内部指针将指向数组的结尾。
自 PHP 5 起,可以很容易地通过在 $value 之前加上 & 来修改数组的单元。此方法将以引用赋值而不是拷贝一个值。
例:
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
c.foreach 不支持用“@”来抑制错误信息的能力。
使用foreach例子:
$arr = array(“one”, “two”, “three”);
reset($arr);
while (list(, $value) = each($arr)) {
echo “Value: $value
\n”;
}
foreach ($arr as $value) {
echo “Value: $value
\n”;
}
5>continue的不同(我很少用continue)
作用:在循环结构用用来跳过本次循环中剩余的代码并在条件求值为真时开始执行下一次循环。
同break一样,也接受一个数字来决定跳出几层到循环代码尾部。
注明:continue;和continue 1;一样,都是跳到本层本次循环的末尾。continue 2则跳出本层循环到外层的末尾。
6>switch中continue的作用:类似于break(和其他语言不同)。
7>declare
结构用来设定一段代码的执行指令。declare 的语法和其它流程控制结构相似:
declare (directive)
statement
directive 部分允许设定 declare 代码段的行为。目前只认识一个指令:ticks(更多angular-js的相关知识:控制结构的详细内容,更多请关注gaodaima搞代码网其它相关文章!