while 语句的含意很简单,它告诉 PHP 只要 while 表达式的值为 TRUE 就重复执行嵌套中的循环语句。表达式的值在每次开始循环时检查,所以即使这个值在循环语句中改变了,语句也不会停止执行,直到本次循环结束。有时候如果 while 表达式的值一开始就是 FALSE,则循环语句一次都不会执行。
Example #1
<?php $i = 0; while ($i <=10){ echo $i." "; $i++; }
Example #2
<?php $a = 0; while ($a < 10) : echo $a." "; $a++; endwhile;
Example #3
<?php while (true) { if ('test') { // is initial condition true // do something that also changes initial condition } else { // condition failed break; // leave loop } }
do-while 循环和 while 循环非常相似,区别在于表达式的值是在每次循环结束时检查而不是开始时。和一般的 while 循环主要的区别是 do-while 的循环语句保证会执行一次(表达式的真值在每次循环结束后检查),然而在一般的 while 循环中就不一定了(表达式真值在循环开始时检查,如果一开始就为 FALSE 则整个循环立即终止)。
Example #1
<?php $i = 0; do { echo $i; } while ($i > 0); ?>
foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。
可以很容易地通过在 $value 之前加上 & 来修改数组的元素。此方法将以引用赋值而不是拷贝一个值。
<?php $arr = [1,2,3,4]; var_dump($arr); //$arr is now array(1, 2, 3, 4) foreach($arr as &$val){ $val = $val*2; } var_dump($arr); //$arr is now array(2, 4, 6, 8) unset($val); // 最后取消掉引用
Warning:数组最后一个元素的 $value 引用在 foreach 循环之后仍会保留。建议使用 unset() 来将其销毁。
$arrB = ['TWO',"ONE","THREE"]; reset($arrB); while(list($key,$val)=each($arrB)){ echo $key.'====>'.$val." "; }