Other Enhancements
-
Improved memory manager and increased default memory limit.
The new memory manager allocates less memory and works faster than the
previous incarnation. It allocates memory from the system in large blocks,
and then manages the heap by itself. The
memory_limit
value in php.ini is
checked, not for each emalloc()
call (as before), but for actual blocks
requested from the system. This means that memory_limit
is far more
accurate than it used to be, since the old memory manager didn't calculate
all the memory overhead used by the malloc
library.
Thanks to this new-found accuracy memory usage may appear to have increased,
although actually it has not. To accommodate this apparent increase, the
default memory_limit
setting was also increased - from 8 to 16 megabytes.
-
Added support for constructors in interfaces to force constructor signature
checks in implementations.
Starting with PHP 5.2.0, interfaces can have constructors. However, if you choose
to declare a constructor in an interface, each class implementing that interface
MUST include a constructor with a signature matching that of the base interface
constructor. By 'signature' we mean the parameter and return type definitions,
including any type hints and including whether the data is passed by reference
or by value.