обработка фатальных исключений php с помощью arrayObject - PullRequest
0 голосов
/ 17 февраля 2011

Нужна помощь с обработкой исключений для 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 голосов
/ 17 февраля 2011

С чего начинается $ c? Если 0 (что вероятно), то $ b = -1, и вы пытаетесь получить $ q [-1], которого, скорее всего, не существует То есть вы ничего не передаете конструктору ArrayObject.

0 голосов
/ 17 февраля 2011

ОК, я не знаю, является ли это лучшим способом сделать это, но я использовал следующий код:

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

Это работает через

0 голосов
/ 17 февраля 2011

из руководства :

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 и убедитесь, что это массив или объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...