PHP的foreach和其它循环的区别

来源:互联网 发布:吉林师范大学教务网络 编辑:程序博客网 时间:2024/04/30 11:05

while(expr)

      statement

while语句告诉PHP只要while表达式的值为TRUE就重复执行嵌套中的循环语句。表达式的值在每次开始循环时检查,所以即使这个值在循环语句中改变了,语句也不会停止执行,直到本次循环结束。如果表达式一开始是false,循环语句一次都会执行。


do-while

do-while循环和while循环非常相似,区别在于表达式的值是每次循环结束时检查而不是开始时。和一般的while循环主要的区别是do-while的循环语句保证会执行一次。


for

for循环是php中最复杂的循环结构,语法是:

for(expr1;expr2;expr3)

statement

第一个表达式(expr1)在循环开始前无条件求值(并执行)一次

expr2在每次循环开始前求值。如果值为TRUE,则继续循环,执行嵌套的循环语句,如果为FALSE则终止循环。

expr3在每次循环之后被求值(并执行)

每个表达式都可以为空,或者逗号分隔的多个表达式。表达式expr2中,所有用逗号分隔的表达式都会去计算,但是只取最后一个结果。expr2为空意味着将无限循环下去。这可能不像想象中那样没有用,因为经常会希望用到条件的break语句结束循环而不是用for的表达式真值判断。


foreach

foreach语法结构提供了遍历数组的简单方式。foreach仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。

foreach(array_expression  as  $value)

statement

foreach (array_expression  as  $key=>$value)

       statement

第一种格式遍历给定的array_expression数组。每次循环中,当前单元的值被赋值给$value并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)

第二种格式做同样的事,只除了当前单元的键名也会每次循环中被赋值个变量$key。

注意如果在循环内部修改值可能导致意外错误,因为foreach依赖内部数组指针,变量赋值

所以如果要改变值,就要在$value前加上&,此方法将引用赋值而不是拷贝一个值。因为你是引用value,最后一个值会被保留,建议用unset()来将其销毁。

0 0
原创粉丝点击