php - isset 可以在 for 循环的条件下使用吗?
问题描述
我正在尝试将尚未写入住宅公寓的房间缩短:RA。因此,只要 array_shift 将房间拖出阵列,循环就应该进一步计数,并且它必须检查 allRARooms 是否还有一些房间留给我。
那么在for 条件下检查isset可以吗?
for($i = 1; count($ra) <= $quantity && isset($this->allRARooms); $i++)
解决方案
是的,您可以将for
循环终止条件设置为您喜欢的任何表达式。
你甚至可以跳过它!例如:
for ($i=0;;$i++) {
if ($i>10) break;
echo "$i\n";
}
或者,也许你想要一个永恒的循环for
?这里是 :
for (;;) echo ++$x . "\n";
本质上,您可以跳过您需要的 for 循环中的任何部分
条件优化
你的情况count($ra) <= $quantity && isset($this->allRARooms)
可以考虑一下。
- 在 99% 的情况下, 就足够了
count($ra) <= $quantity && $this->allRARooms
,因为'',null,[]
-all 的计算结果为false
。 - 此外,您应该将allRARooms var check 放在首位,例如:
$this->allRARooms && count($ra) <= $quantity
. 这样,您将使用短路评估技巧来提高条件检查速度,因为如果未设置 var allRARooms - 将不会评估 count($ra) - 从而节省 CPU 滴答 声
推荐阅读
- javascript - 如何隐藏“类型”元素
- r - 使用 ggplot 重现绘图
- xcode - 为什么我的 NSSplitViewItem 在折叠完成之前隐藏它的子视图
- javascript - 为什么在安装 npm i typescript 后,`npx tsc --init` 使用旧版本(V1.5.3)但更新(V4.1.3)?
- java - 在调用外部 API 之前过滤 Camel 标头
- powershell - 为什么故障转移集群管理器 GUI 不反映我们的 Powershell 输入?
- javascript - 检查是否在对象数组中找到数组项作为某个属性值
- javascript - Sequelize - 开发/构建模式之间的不同包含表名称
- python-3.x - 在 django 中删除问题时出现 FieldError,django-hitcount
- tensorflow - model = hub.load(module_handle) 抛出错误