お疲れ様です。すぺきよです。
Google Search Consoleで自身のブログの検索条件を見ていると「array_key_exists 非推奨」というキーワードで検索されていることがありました。
もしかして、PHPのarray_key_existsは知らない間に非推奨になったのか?と思い調べてみました。
また、各機能が非推奨になっているかどうかの調べ方についても、根拠としてまとめましたので、よろしければご参照ください。
結論:array_key_exists自体は非推奨になっていません
結論から言うとarray_key_exists関数自体はPHP8において非推奨になっていません。
今までも非推奨になってからの機能削除という流れは何度もありましたが、array_key_exists関数自体は非推奨になっていません。
説明の上でarray_key_exists関数”自体”と言っているのは、PHP8においてarray_key_existsの機能として一部、非推奨になった機能があるためです。
詳細はこちら「[PHP]array_key_existsのPHP8で非推奨となった注意点の詳細」を参照してください。
根拠
根拠は至って単純で、公式にそう書かれているからです。
過去にも何度か非推奨になり、関数自体を削除という流れはありました。その際はPHPの公式にまずアナウンスがあり、マニュアルに非推奨になったことが明記されます。
例えば、PHP8.2で非推奨となった「utf8_encode」を見てみましょう。
英語版のマニュアルですが、しっかりと「Warning」のブロックが記載され、PHP8.2.0で非推奨になった胸のメッセージが表示されています。
このメッセージを日本語版のマニュアルで見てみると、以下のメッセージになっています。
警告
この関数は PHP 8.2.0 で 非推奨になります。この関数に頼らないことを強く推奨します。
https://www.php.net/manual/ja/function.utf8-encode.php
では、array_key_existsのページはどうなっているかというと、以下のようになっています。
見ての通り、非推奨になった旨のメッセージが出ていません。念の為、リリースノートでも調べましたが、array_key_exists自体が非推奨になったという内容は見当たりませんでした。
ちなみに、削除までされてしまった機能は以下のように、どのバージョンで非推奨になって、どのバージョンで削除されたかの記載があります。
下記each関数であれば、PHP7.2.0で非推奨になってPHP8.0.0で削除されてしまったことがわかります。
まとめ
今回は「PHP8でarray_key_existsは非推奨になったのか」というお話をしました。
一部のブログ記事でarray_key_exists自体が非推奨になっているという記載がされているものがあったので、そのせいなのかな?
調べ物は常に最後には公式で裏をとるようにしましょう。公式も確実に正確ではないし、難しい内容が書かれていたりしますが、それでもそこらのブログよりは信用できます。
恐れず、読むようにしましょう。できれば、英語のマニュアルを読むようにしましょう。