对我来说,经常遇到处理既可以是数组又可以是空变量的数据,并将这些数据提供给一些 foreach。
$values = get_values();
foreach ($values as $value){
...
}
当你用不是数组的数据来提供 foreach 时,会收到一个警告:
警告:foreach() 中提供的参数无效 in [...]
假设无法重构 get_values() 函数以始终返回数组(向后兼容性,不可用的源代码,或其他任何原因),我想知道避免这些警告的最清洁和最高效的方法是什么:
$values 转换为数组$values 初始化为数组if 包装 foreachCopyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这个怎么样?它更简洁,而且都在一行中。
foreach ((array) $items as $item) { // ... }个人而言,我觉得这是最干净的 - 不确定是否是最有效的,注意!
if (is_array($values) || is_object($values)) { foreach ($values as $value) { ... } }我偏好的原因是当你一开始就没有任何东西时,它不会分配一个空数组。