Deprecated Features
PHP Core
Changes to user output handler
Trying to produce output (e.g. with echo) within
a user output handler is deprecated.
The deprecation warning will bypass the handler producing the output to
ensure it is visible; if there are nested output handlers the next
one will still be used.
Non-canonical cast names
Non-canonical cast names (boolean),
(integer), (double),
and (binary) have been deprecated,
use (bool), (int),
(float), and (string) respectively.
Terminating case statements with a semicolon
Terminating case statements with a semicolon instead of a colon has
been deprecated.
Returning null from __debugInfo()
Returning null from
__debugInfo()
has been deprecated. Return an empty array instead.
report_memleaks INI directive
The report_memleaks INI directive
has been deprecated.
Constant redeclaration
Constant redeclaration has been deprecated.
Note that this already generated a warning and will continue to do so.
Closure binding issues
The following closure binding issues, which already emit an
E_WARNING, are now deprecated:
- Binding an instance to a static closure.
- Binding methods to objects that are not instances of the class
(or subclass) that the method is defined.
- Unbinding $this from a method.
- Unbinding $this from a closure that uses `$this`.
- Binding a closure to the scope of an internal class.
- Rebinding the scope of a closure created from a function or method.
__sleep() and __wakeup() magic methods
The __sleep() and
__wakeup() magic methods
have been soft-deprecated.
The __serialize() and
__unserialize() magic
methods should be used instead, or at the same time if compatibility
with PHP 7 is required.
Using null as an array offset
Using null as an array offset or when calling array_key_exists()
is now deprecated. Instead an empty string should be used.
Incrementing non-numeric strings
Incrementing non-numeric strings is now deprecated.
Instead the str_increment() function should be used.
register_argc_argv INI directive
Deriving $_SERVER['argc'] and $_SERVER['argv']
from the query string for non-CLI SAPIs has been deprecated.
Configure register_argc_argv=0 and switch to either
$_GET or $_SERVER['QUERY_STRING']
to access the information, after verifying that the usage is safe.
FileInfo
The finfo_close() function has been deprecated.
As finfo objects are freed automatically.
The context parameter of the
finfo_buffer() function has been deprecated
as it is ignored.
Hash
The MHASH_* constants have
been deprecated.
Intl
The intl.error_level INI setting
has been deprecated.
Errors should either be checked manually or exceptions should be enabled by
using the intl.use_exceptions
INI setting.
LDAP
Specific Oracle Instant Client calls and constants have been deprecated.
List of affected calls:
List of affected constants:
GSLC_SSL_NO_UATH
GSLC_SSL_ONEWAY_UATH
GSLC_SSL_TWOWAY_UATH
OpenSSL
The key_length parameter for
openssl_pkey_derive() has been deprecated.
This is because it is either ignored, or truncates the key, which can be
a security vulnerability.
PDO
The "uri:" DSN scheme has been deprecated due to security concerns with
DSNs coming from remote URIs.
Driver specific constants in the PDO class have been deprecated.
List of affected constants and their replacement:
Driver specific methods in the PDO class have been deprecated.
List of affected methods and their replacement:
PDO_PGSQL
Constants related to transaction states have been deprecated as this feature is unavailable with PDO: