mirror of
https://github.com/php/php-src.git
synced 2024-12-15 21:05:51 +08:00
61 lines
3.1 KiB
Plaintext
61 lines
3.1 KiB
Plaintext
PHP 5.2 Update info or NEWS explained
|
|
|
|
- Changed E_ALL error reporting mode to include E_RECOVERABLE_ERROR. (Marcus)
|
|
|
|
This change means that the value of the E_ALL constant had changed to 6143
|
|
from its previous value of 2047. If you are setting your error reporting mode
|
|
inside the Apache config file or the .htaccess files you will need to adjust
|
|
the value of error_reporting INI setting accordingly.
|
|
|
|
- Added new error mode E_RECOVERABLE_ERROR. (Derick, Marcus, Tony)
|
|
|
|
This changes a few E_ERROR conditions to something that you can now catch
|
|
using a user error handler. If the user error handler does not grab these
|
|
kind of errors they behave as fatal errors just like in any PHP version prior
|
|
to 5.2. Errors of this type are logged as 'Catchable fatal error'.
|
|
|
|
- Added support for constructors in interfaces to force constructor signature
|
|
checks in implementations. (Marcus)
|
|
|
|
Starting with PHP 5.2 interfaces can have constructors. If you use this
|
|
feature then all implementing classes must implement constructors with a
|
|
matching signature, while normally constructors do not need to follow any
|
|
base class or interface constructor signature. (Signature is the name for
|
|
the parameter and return type definition which captures count, reference or
|
|
not and any type hints).
|
|
|
|
- Changed __toString to be called wherever applicable. (Marcus)
|
|
|
|
The magic object method __toString() is now called whenever an object is used
|
|
as a string. The function must not throw an exception or the script will be
|
|
terminated with a catchable see above) fatal error. The PHP 5.0/5.1 fallback
|
|
to return a string containing the object identifier has been dropped. People
|
|
were assuming that this object identifier was unique when in fact it wasn't.
|
|
|
|
Even with __toString objects cannot be used as keys to arrays. We might add
|
|
built-in hash support for this. But for 5.2 you would need to either provide
|
|
your own hashing and use an explicit string cast or use new function
|
|
spl_object_hash()
|
|
|
|
- Added RFC2397 (data: stream) support. (Marcus)
|
|
|
|
Under windows this can mean a very rare change of behavior. If you are using
|
|
NTFS filesystem and making use of meta streams in your application this no
|
|
longer works for a file with the name 'data:' accessed without any path. If
|
|
you need to do so you have to prefix the filename with the "file:" protocol.
|
|
For the functionality itself look here http://www.faqs.org/rfcs/rfc2397.html.
|
|
|
|
- Added allow_url_include ini directive to complement allow_url_fopen. (Rasmus)
|
|
|
|
With this option one can now distinguish between standard file operations on
|
|
remote files and inclusion of remote files. While the former is usually
|
|
desired, the latter implies security risks if used naively. Starting with
|
|
PHP-5.2 it is now possible to allow standard file operations while
|
|
dissallowing inclusion of remote files, which is also the default
|
|
configuration now.
|
|
|
|
- Dropped abstract static class functions. (Marcus)
|
|
|
|
Due to an oversight PHP 5.0, 5.1 allowed abstract static functions. In PHP
|
|
5.2 only interfaces can have abstract static functions.
|