Php/docs/migration80.deprecated

提供:Dev Guides
< Php
移動先:案内検索

推奨されなくなる機能

PHP コア

  • デフォルト値を持つ引数の後に、必須の引数が続く場合、デフォルト値は意味をなしません。 こうした書き方は PHP 8.0.0 から推奨されなくなります。 以下のようにしてデフォルト値を削除することで、機能を変更することなく解決できます:

    <?phpfunction test($a = [], $b) {} // 変更前function test($a, $b) {}      // 変更後?>

    このルールの唯一の例外は、Type $param = null と書かれた引数です。 null をデフォルトにすることは、型が暗黙のうちに nullable であることを示しています。 この書き方はまだ許可されていますが、以下のようにして 明示的に nullable 型を使うことを推奨します:

    <?phpfunction test(A $a = null, $b) {} // まだ許可されていますfunction test(?A $a, $b) {}       // 推奨される書き方?>

  • exclude_disabled を明示的に false に指定して get_defined_functions() 関数を呼び出すことは推奨されなくなり、 結果として何も起きなくなりました。 get_defined_functions() 関数は無効な関数を返さなくなっています。


Enchant


LibXML

libxml_disable_entity_loader() 関数は推奨されなくなりました。 libxml 2.9.0 がビルドに必須になったので、 外部エンティティの読み込みはデフォルトで無効になっていることが保証されています。 よって、XXE 攻撃を防ぐためにこの関数を使う必要は既になくなっています。


PGSQL / PDO PGSQL


標準ライブラリ

  • true または false を返すソートの比較関数は、推奨されない警告を発生させるようになりました。 0より大きいか、0に等しいか、0より小さい整数を返す実装に置き換えるべきです。

    <?php// この実装をusort($array, fn($a, $b) => $a > $b);// 以下のように置き換えて下さいusort($array, fn($a, $b) => $a <=> $b);?>


Zip

  • 空のファイルを ZipArchive として使うことは推奨されなくなりました。 Libzip 1.6.0 は空のファイルを正しいzipアーカイブとして受け入れなくなっています。 既に存在する回避策は、次のバージョンで削除される予定です。

  • Zip の手続き型の API は推奨されなくなりました。 ZipArchive クラスを代わりに使って下さい。 ZipArchive::statIndex()for ループを以下のようにして使えば、 全てのエントリを処理できます:

    <?php// 手続き型のAPIを使ってループするassert(is_resource($zip));while ($entry = zip_read($zip)) {    echo zip_entry_name($entry);}// オブジェクト志向のAPIを使ってループするassert($zip instanceof ZipArchive);for ($i = 0; $entry = $zip->statIndex($i); $i++) {    echo $entry['name'];}?>


リフレクション