Zend Engine 2 alpha
I don’t know how I missed this, but the PHP group have released an alpha version of PHP with the Zend Engine 2 (tarball / Windows binary). This is exciting stuff—the new scripting engine has vastly improved object support and brand new exception handling, something I’ve wanted in PHP for a long time. The CHANGELOG lists the new features and provides sample code. Here’s a summary:
- New Object Model—objects are dealt with by reference and no longer copied every time they are assigned or passed to a method.
- Private Members—classes can have private members, specified with the new
- Object Cloning—via a new
- Forced deletion of objects—via the new
- Nested classes (namespaces)
- Unified Constructors—constriuctors can now be declared as
__construct()rather than using the name of the class.
- Destructors—specified with
- Dereferencing objects returned from functions—now you can use code like this:
- Static member variables of static classes can now be initialized.
- Parameters that are passed by reference to a function may now have default values.
- Built-In Backtracing—the
debug_backtrace()returns an array of previously called functions, along with their file and line number.
It’s all good, but it comes with a hefty warning against using the alpha on even semi-production web sites. Personally I can’t wait for a deployable version.