Вы передаете значение ячейки памяти первого члена массива.
Поэтому, когда вы начинаете изменять массив внутри функции, вы изменяете исходный массив.
Помните, что a[1]
- *(a+1)
.
Вы можете бросать новое исключение из тела функции. Все это описано здесь
Пример:
<?php
function inverse($x) {
if (!$x) {
throw new Exception('Division by zero.');
}
else return 1/$x;
}
try {
echo inverse(5) . "\n";
echo inverse(0) . "\n";
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
// Continue execution
echo 'Hello World';
?>
Список исключений, которые поставляются с SPL: SPL Exceptions.
Если вы хотите создать собственное исключение:
Со страницы PHP Exceptions:
Брошенный объект должен быть экземпляром класса Exception или подклассом Exception. Попытка бросить объект, который таковым не является, приведет к фатальной ошибке PHP.
Итак, да, можно создавать собственные исключения. Немного чтения поможет вам достичь желаемого.