|
|
|
Новое в PHP5
XML и веб-сервисы
Безопасный офис
Защита от копирования и методы ее взлома
История PHP
Корпоративная информационная система
Новое в PHP5
Основные типы данных PHP
Основы языка программирования РНР 5
Программистские байки
Торговая информационная система
|
Новая объектно-ориентированная модель
Новые объектно-ориентированные особенности
Новый диспетчер памяти
Отказ от поддержки Windows 95
Прочие нововведения в язык программирования PHP5
Обработка исключительных ситуаций. В РНР 5 добавлена хорошо известная парадигма обработки исключений: try/throw/catch. Пользовательские классы-исключения должны порождаться от класса Exception. class SQLException extends Exception { public Sproblem; function __construct($problem) { $this->problem = $problem; } } try { throw new SQLException("Ошибка соединения с базой данных"); } catch (SQLException $e) { print "Возникла ошибка SQLException: $obj->problem"; } catch (Exception $e) { print "Неизвестная ошибка"; } В настоящий момент времени для сохранения обратной совместимости в большинстве библиотечных функций исключения не применяются. Однако в расширениях, новых для РНР, такая возможность уже реализована, и программисты могут ее использовать. Кроме того, аналогично существующей функции set_error_handler() предусмотрена функция set_exception_handler(), которая может применяться для перехвата необработанных исключений, прежде чем они приведут к аварийному завершению сценария. • Возможность работы с переменными-ссылками в конструкции foreach(). В PHP 4 нельзя было пройти в цикле по массиву и одновременно изменить значения его элементов. РНР 5 это допускает, если перед переменной цикла поставить символ «&». Таким образом, появилась возможность изменять элементы исходного массива, записывая новые значения в переменную цикла. foreach ($array as &$value) { if ($value === "NULL") { $value = NULL; } } • Значения по умолчанию для аргументов-ссылок. В РНР 4 можно было определять значения по умолчанию только для аргументов, передаваемых в функции по значению. В РНР 5 добавлена возможность задания значений по умолчанию и для аргументов, передаваемых по ссылке. function my_func(&$arg = null) { if ($arg === NULL) { print "пустой аргумент $arg"; } } my_func();
|
|
|
|