Deprecated features in PHP 7.2.x
Unquoted strings that are non-existent global constants are taken to be
strings of themselves. This behaviour used to emit an
E_NOTICE, but will now emit an
E_WARNING. In the next major version of PHP, an
Error exception will be thrown instead.
Warning: Use of undefined constant NONEXISTENT - assumed 'NONEXISTENT' (this will throw an Error in a future version of PHP) in %s on line %d
The png2wbmp() and jpeg2wbmp()
functions from the GD extension have now been deprecated and will be removed
in the next major version of PHP.
The Intl extension has deprecated the
INTL_IDNA_VARIANT_2003 variant, which is currently
being used as the default for idn_to_ascii() and
idn_to_utf8(). PHP 7.4 will see these defaults changed to
INTL_IDNA_VARIANT_UTS46, and the next major version of
PHP will remove
The __autoload() method has been deprecated because it is
inferior to spl_autoload_register() (due to it not being
able to chain autoloaders), and there is no interoperability between the two
track_errors ini setting and $php_errormsg variable
track_errors ini setting is enabled, a
$php_errormsg variable is created in the local scope when
a non-fatal error occurs. Given that the preferred way of retrieving such
error information is by using error_get_last(), this
feature has been deprecated.
Given the security issues of this function (being a thin wrapper around
eval()), this dated function has now been deprecated.
The preferred alternative is to use anonymous functions.
mbstring.func_overload ini setting
Given the interoperability problems of string-based functions being used in
environments with this setting enabled, it has now been deprecated.
Casting any expression to this type will always result in
NULL, and so
this superfluous casting type has now been deprecated.
parse_str() without a second argument
Without the second argument to parse_str(), the query
string parameters would populate the local symbol table.
Given the security implications of this, using
parse_str() without a second argument has now been
deprecated. The function should always be used with two arguments, as the
second argument causes the query string to be parsed into an array.
This function generates a random number based upon a range that is
calculated by an unexposed, platform-specific limb size. Because of this,
the function has now been deprecated. The preferred way of generating a
random number using the GMP extension is by
This function is far slower at iteration than a normal
foreach, and causes implementation issues for some
language changes. It has therefore been deprecated.
assert() with a string argument
Using assert() with a string argument required the string
to be eval()'ed. Given the potential for remote code
execution, using assert() with a string argument has now
been deprecated in favour of using boolean expressions.
$errcontext argument of error handlers
The $errcontext argument contains all local variables of
the error site. Given its rare usage, and the problems it causes with
internal optimisations, it has now been deprecated.
Instead, a debugger should be used to retrieve
information on local variables at the error site.