如果变量不是数组或未设置,我正在寻找一种有效/优雅的方法来避免Invalid argument supplied for foreach()
错误。以下是我今天发现的(php7.3.27
(,它有效:
foreach(isset($arr) ? (array)$arr : [] as $k=>$v) {
// loop
}
有没有更短/更优雅的方法?
不要简明扼要。清楚你的意思:
if (empty($arr) OR !is_array($arr)) {
return;
}
foreach ($arr as $key => $value) {
// …
}
请注意,函数中的类型声明可以帮助您完全避免这种情况。