Новые возможности
PHP 5.3.0 предлагает широкий спектр новых возможностей:
- Добавлена поддержка пространств имен.
- Добавлена поддержка позднего статического связывания.
- Добавлена поддержка меток перехода (ограниченный goto).
- Добавлена поддержка нативных замыканий (closures) (Lambda/Anonymous функции).
- Появились два магических метода: __callStatic() и __invoke().
- Появилась поддержка синтаксиса Nowdoc, подобный Heredoc, но с одинарными кавычками.
- Теперь возможно использовать Heredoc для инициализации статических переменных и свойств/констант классов.
- Heredoc теперь может быть объявлен используя двойные кавычки, дополняющие синтаксис Nowdoc.
- Константы теперь могут быть объявлены вне класса, используя ключевое слово const.
- У тернарного оператора есть теперь сокращенный вид: ?:.
- Обертка (wrapper) HTTP-потока стала воспринимать коды статуса от 200 до 399 как успешные.
-
Стал возможен динамический доступ к статическим методам:
<?php
class C {
public static $foo = 123;
}
$a = "C";
echo $a::$foo;
?>Результат выполнения данного примера:
123
-
Исключения теперь могут быть вложенными:
<?php
class MyCustomException extends Exception {}
try {
throw new MyCustomException("Exceptional", 112);
} catch (Exception $e) {
/* Обратите внимание, что для передачи $e
* в RuntimeException используется третий параметр. */
throw new RuntimeException("Rethrowing", 911, $e);
}
?> - Добавлен сборщик мусора для циклических ссылок. Он включен по умолчанию.
- Функция mail() теперь поддерживает журналирование отправки письма с помощью директивы mail.log. (Примечание: это применимо только для писем, отправленных этой функцией.)
- Что нового в PHP 5.3.x ?
- Обратно несовместимые изменения
- Новые возможности
- Изменения в поддержке Windows
- Изменения в модулях SAPI
- Устаревшие функции и возможности в PHP 5.3.x
- Функции и возможности, которые ранее считались устаревшими, а теперь снова возвращены в PHP 5.3.x
- Новые параметры
- Новые функции
- Новые обертки потоков
- Новые фильтры потоков
- Новые константы классов
- Новые методы
- Новые расширения
- Удаленные расширения
- Другие изменения в расширениях
- Новые классы
- Новые глобальные константы
- Изменения в работе с INI-файлами
- Другие изменения
Коментарии
Can someone explain the "circular references" please?