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
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.