对于我来说,经常遇到处理既可以是数组又可以是空变量的数据,并将这些数据提供给一些foreach。
$values = get_values();
foreach ($values as $value){
...
}
当你将一个不是数组的数据提供给foreach时,会收到一个警告:
Warning: Invalid argument supplied for 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) { ... } }我偏好的原因是当你根本没有任何内容时,它不会分配一个空数组。