我正在尝试从父类的扩展类中循环遍历不同的选项,但是我的foreach语句一直出现这个错误:
警告:为foreach()提供的参数无效
不知道为什么会发生这种情况,不知道我错过了什么?不确定为什么$this->options()
没有被识别为数组......我之前有过类似的事情,但我觉得有些事情只是在我的脑海中拍摄:
class parent_class {
public function my_method() {
$options = $this->options();
foreach($options as $option) {
// ...
}
}
public function options() {
}
}
class child_one extends parent_class {
public function options() {
$options['name_one'] = array(
'type' => 'type_one',
'id' => 'id_one',
'name' => 'name_one'
);
return $options;
}
}
class child_two extends parent_class {
public function options() {
$options['name_two'] = array(
'type' => 'type_two',
'id' => 'id_two',
'name' => 'name_two'
);
return $options;
}
}
答案 0 :(得分:0)
警告:为foreach()提供的参数无效
告诉你foreach
期望提供的数组作为第一个参数。
您向其提供$options = $this->options()
,由于options()
方法为空,因此返回值为NULL
,因此设置为$options = NULL
。
为了避免它,你可以:
$options = $this->options();
if (is_array($options))
foreach($options as $option) {
// ...
}
}