PHP 5 добавляет парадигму обработки исключений, вводя структуру
try/throw/catch. Вам остается только создать объекты, которые наследуют класс
исключений Exception.
<?php
class SQLException
extends Exception
{ public
$problem; function __construct($problem) { $this->problem = $problem; } }
try { ...
throw new
SQLException("Couldn't connect to database");
... } catch (SQLException $e) { print "Caught an
SQLException with problem $obj->problem"; }
catch (Exception $e) { print
"Caught unrecognized exception"; } ?>
В настоящее время в целях обратной совместимости большинство внутренних
функций не использует исключения. Однако, все новые расширения будут иметь такую
возможность, и вы можете использовать такую конструкцию в своем исходном тексте.
Кроме того, подобно уже существующей функции set_error_handler(), вы можете
использовать set_exception_handler(), чтобы отловить необработанное исключение
прежде, чем выполнение скрипта будет закончено.
foreach с сылкой
В PHP 4 вы не могли пройтись с помощью foreach() по массиву, изменяя его
значения. В PHP 5 разрешено выполнять foreach (), используя признак ссылки
('&'), таким образом, меняя переменную, вы меняете элементы массива, по
которому проходит итерация.
<?php
foreach ($array
as &$value) { if
($value ===
"NULL") {
$value = NULL;
} } ?>
Значения по умолчанию для параметров, передаваемых по ссылке
В PHP 4 задать значение по умолчанию можно было только для параметров,
которые передаются по значению. Теперь поддерживается установка значений по
умолчанию для параметров, передаваемых по ссылке.
<?php
function my_func(&$arg = null) { if ($arg === NULL) { print '$arg is empty'; } }
my_func();