需要有关arrayObject异常处理的帮助。我正在迭代一系列对象,但是当偏移结束时会发生致命异常。代码是:
while ($c <= 10) {
$num = 1;
$b = $c-$num;
$object_to_iterate = $q[$b];
$obj = new ArrayObject ($object_to_iterate);
iterateObject($obj);
$c ++;
}
错误是:
Fatal error: Uncaught exception 'InvalidArgumentException'
任何帮助都会很棒。
答案 0 :(得分:0)
来自manual:
The input parameter accepts an array or an Object.
现在正如@BoltClock所说:如果不知道b,c,q和num是什么,真的很难搞清楚,但如果q是一个数组,那么
$object_to_iterate = $q[$b];
可能只是一个字符串?然后
$obj = new ArrayObject ($object_to_iterate);
有一个不是对象或数组的参数?
也许在var_dump()
上执行$object_to_iterate
,并检查它是数组还是对象。
答案 1 :(得分:0)
$ c从什么开始?如果为0(很可能),那么$ b = -1并且你试图获得$ q [-1],这又可能不存在。所以你并没有真正将任何东西传递给ArrayObject构造函数。
答案 2 :(得分:0)
好的我不知道这是否是最好的方法,但我使用了以下代码:
while ($c <= 10) {
$num = 1;
$b = $c-$num;
$object_to_iterate = $q[$b];
//exception handling
if (empty($q[$b])) {
break;
} else {
$obj = new ArrayObject($object_to_iterate);
iterateObject($obj);
}
$c ++;
}
通过
工作