使用arrayObject进行php致命异常处理

时间:2011-02-17 16:40:03

标签: php object exception-handling

需要有关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'

任何帮助都会很棒。

3 个答案:

答案 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 ++;
}

通过

工作