<?php //========== DEMO-1 ==========// function get_condition(): int { echo 'get_condition()被调用' . PHP_EOL; return 5; } // 条件表达式里的get_condition()会多次执行,为了提高效率应该避免在条件表达式里调用函数 for ($i = 0; $i < get_condition(); $i++) { echo '$i = ' . $i . PHP_EOL; } // get_condition()被调用 // $i = 0 // get_condition()被调用 // $i = 1 // get_condition()被调用 // $i = 2 // get_condition()被调用 // $i = 3 // get_condition()被调用 // $i = 4 // get_condition()被调用 //========== DEMO-2 ==========// $c = 10; for ($j = 0; $j < $c; $j++) { echo '$j = ' . $j . PHP_EOL; if ($j === 3) { $c = 0; // 这里修改$c的值会影响条件表达式 } } // $j = 0 // $j = 1 // $j = 2 // $j = 3 //========== DEMO-3 ==========// // 在初始化表达式里同时初始化$k、$arr、$count for ($k = 0, $arr = [9, 5, 2, 7], $count = count($arr); $k < $count; $k++) { echo "\$arr[$k] = " . $arr[$k] . PHP_EOL; } // $arr[0] = 9 // $arr[1] = 5 // $arr[2] = 2 // $arr[3] = 7 //========== 总结 ==========// // 1、for循环的条件表达式会进行多次计算,所以设置条件表达式时应该用确定的值,而不是调用函数或方法。 // 2、for循环的条件表达式可以随时修改,从而实现不使用break退出循环,但该方式可读性较差,基本不会使用。 // 3、for循环的初始化表达式可以同时初始化多个值,每个初始化语句之间用半角逗号隔开。
Copyright © 2024 码农人生. All Rights Reserved