The PHP development team have just announced the immediate release of PHP 5.3.0. This release is a major improvement in the 5.X series, which includes a large number of new features and bug fixes. For users upgrading from PHP 5.2 there is a migration guide available here, detailing the changes between those releases and PHP 5.3.0.
The key features of PHP 5.3.0 include:
- Support for namespaces
- Late static binding
- Lambda Functions and Closures
-
Syntax additions:
NOWDOC,
ternary short cut “?:” and
jump label (limited goto),
__callStatic() - Under the hood performance improvements
- Optional garbage collection for cyclic references
- Optional mysqlnd PHP native replacement for libmysql
- Improved Windows support including VC9 and experimental X64 binaries
as well as portability to other supported platforms - More consistent float rounding
- Deprecation notices are now handled via
E_DEPRECATED
(part ofE_ALL
)
instead of theE_STRICT
error level - Several enhancements to enable more flexiblity in php.ini (and ini parsing in general)
- New bundled extensions:
ext/phar,
ext/intl,
ext/fileinfo,
ext/sqlite3,
ext/enchant - Over 140 bug fixes and improvements to PHP, in particular to:
ext/openssl,
ext/spl and
ext/date
This release also drops several extensions and unifies the usage of internal APIs.
Users should be aware of the following known backwards compatibility breaks:
- Parameter parsing API unification will cause some functions to behave more
or less strict when it comes to type juggling - Removed the following extensions:
ext/mhash (see ext/hash),
ext/msql,
ext/pspell (see ext/enchant),
ext/sybase (see ext/sybase_ct) - Moved the following extensions to PECL:
ext/ming,
ext/fbsql,
ext/ncurses,
ext/fdf - Removed zend.ze1_compatibility_mode