实例: <?php /** * 完整调用示例: * 1、combine.php?t=j&b=public&fs=jslib.jquery,function * *…
PHP: 控制循环执行次数, do…while与while , goto 跳转位置, if not repeat running
do-while
(PHP 4, PHP 5, PHP 7)
do-while 循环和 while 循环非常相似,区别在于表达式的值是在每次循环结束时检查而不是开始时。和一般的 while 循环主要的区别是 do-while的循环语句保证会执行一次(表达式的真值在每次循环结束后检查),然而在一般的 while 循环中就不一定了(表达式真值在循环开始时检查,如果一开始就为 FALSE
则整个循环立即终止)。
do-while 循环只有一种语法:
<?php $i = 0; do { echo $i; } while ($i > 0); ?>
以上循环将正好运行一次,因为经过第一次循环后,当检查表达式的真值时,其值为 FALSE
($i 不大于 0)而导致循环终止。
do…while与while的语法结构基本一样,也是一个布尔型循环,功能也基本一样。
基本语法规定如下:
do { //代码块 } while (判断);
do…while与while的区别是,它们的值的检查时机不同。
do-while 不论while判断是否成立,先执行一次代码代码块循环语句,保证会执行一次(表达式的真值在每次循环结束后检查)。
然而我们之前的while循环会检查布尔判断区域,成立则执行。不成立则不执行。
我们用代码去验证一下:
?php $i = 0; do { echo $i; } while ($i > 0); ?>
上面代码中,$i 肯定不大于0,也执行了。
或者:
$product_title = get_product_title(); $loop = 0; $loop_limit = 3; do { if($product_title) { // do something $loop = $loop_limit; } else { $loop++; sleep(1); $product_title = get_product_title_again(); } } while ($loop < $loop_limit);
当然,你还不能理解,实在想不到应用场景也没关系,可以完全跳过此块。
do…while用的情况比较少。我们有可能用在资源处理如:文件打开等地方。
goto
(PHP 5 >= 5.3.0, PHP 7)
goto 操作符可以用来跳转到程序中的另一位置。该目标位置可以用目标名称加上冒号来标记,而跳转指令是 goto 之后接上目标位置的标记。PHP 中的 goto 有一定限制,目标位置只能位于同一个文件和作用域,也就是说无法跳出一个函数或类方法,也无法跳入到另一个函数。也无法跳入到任何循环或者 switch 结构中。可以跳出循环或者 switch,通常的用法是用 goto 代替多层的 break。
Example #1 goto 示例
<?php goto a; echo 'Foo'; a: echo 'Bar'; ?>
以上例程会输出:Bar
Example #2 goto 跳出循环示例
<?php for($i=0,$j=50; $i<100; $i++) { while($j--) { if($j==17) goto end; } } echo "i = $i"; end: echo 'j hit 17'; ?>
以上例程会输出:j hit 17
Example #3 以下写法无效
<?php goto loop; for($i=0,$j=50; $i<100; $i++) { while($j--) { loop: } } echo "$i = $i"; ?>
以上例程会输出:Fatal error: ‘goto’ into loop or switch statement is disallowed in script on line 2
Note:
goto 操作符仅在 PHP 5.3及以上版本有效。

注:
goto 操作符可以用来跳转到程序中的另一位置。
该目标位置可以用目标名称加上冒号来标记,而跳转指令是 goto 之后接上目标位置的标记。
PHP 中的 goto 有一定限制,目标位置只能位于同一个文件和作用域,也就是说无法跳出一个函数或类方法,也无法跳入到另一个函数。也无法跳入到任何循环或者 switch 结构中。可以跳出循环或者 switch,通常的用法是用 goto 代替多层的 break。
本文:PHP: 控制循环执行次数, do…while与while , goto 跳转位置, if not repeat running