You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

if语句内用自增和&&操作符,不使用for/foreach有更优写法吗

优化写法参考

写法1:符合「自增逻辑放if内部、必须用&&」要求的实现

$i = 0;
if ($array[$i++]['key'] !== $var && $array[$i++]['key'] !== $var && $array[$i++]['key'] !== $var):
  //echo something here
endif;

无需手动硬编码0/1/2的索引值,自增逻辑完全嵌入if判断条件内,和你原有的&&逻辑完全等效,后续要扩展校验的数组元素数量,只需要追加对应&& $array[$i++]['key'] !== $var片段即可,避免手写错索引的问题。


写法2:无需逐个写判断条件的简洁实现(适合校验元素数量可能调整的场景)

如果不需要强制用&&语法,更推荐下面可维护性更高的写法:

支持严格全等判断版本

// 第三个参数传true开启全等校验,和原逻辑的!==效果完全一致
if (!in_array($var, array_column(array_slice($array, 0, 3), 'key'), true)):
  //echo something here
endif;

PHP 8.1+ 更直观的版本

if (count(array_filter(array_slice($array, 0, 3), fn($item) => $item['key'] === $var)) === 0):
  //echo something here
endif;

两种写法都只需要修改array_slice的第二个参数就能调整校验的数组元素数量,不需要修改判断逻辑本身。


内容的提问来源于stack exchange,提问作者Rob Myrick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 04:36:01