Php/docs/migration80.deprecated

From Get docs

Deprecated Features

PHP Core

  • If a parameter with a default value is followed by a required parameter, the default value has no effect. This is deprecated as of PHP 8.0.0 and can generally be resolved by dropping the default value, without a change in functionality:

    <?phpfunction test($a = [], $b) {} // Beforefunction test($a, $b) {}      // After?>

    One exception to this rule are parameters of the form Type $param = null, where the null default makes the type implicitly nullable. This usage remains allowed, but it is recommended to use an explicit nullable type instead:

    <?phpfunction test(A $a = null, $b) {} // Still allowedfunction test(?A $a, $b) {}       // Recommended?>

  • Calling get_defined_functions() with exclude_disabled explicitly set to FALSE is deprecated and no longer has an effect. get_defined_functions() will never include disabled functions.


Enchant


LibXML

libxml_disable_entity_loader() has been deprecated. As libxml 2.9.0 is now required, external entity loading is guaranteed to be disabled by default, and this function is no longer needed to protect against XXE attacks.


PGSQL / PDO PGSQL


Standard Library

  • Sort comparison functions that return TRUE or FALSE will now throw a deprecation warning, and should be replaced with an implementation that returns an integer less than, equal to, or greater than zero.

    <?php// Replaceusort($array, fn($a, $b) => $a > $b);// Withusort($array, fn($a, $b) => $a <=> $b);?>


Zip

  • Using an empty file as ZipArchive is deprecated. Libzip 1.6.0 does not accept empty files as valid zip archives any longer. The existing workaround will be removed in the next version.

  • The procedural API of Zip is deprecated. Use ZipArchive instead. Iteration over all entries can be accomplished using ZipArchive::statIndex() and a for loop:

    <?php// iterate using the procedural APIassert(is_resource($zip));while ($entry = zip_read($zip)) {    echo zip_entry_name($entry);}// iterate using the object-oriented APIassert($zip instanceof ZipArchive);for ($i = 0; $entry = $zip->statIndex($i); $i++) {    echo $entry['name'];}?>


Reflection