apice-technologymemorandum
投稿日時:2023/12/01
PHP8 非互換性のある変更
非互換性のある変更につき、重要なものを簡単にまとめます。
文字列と数値の比較: PHP 8では、数値文字列と数値の比較時の挙動が変更されました。PHP 7では、数値文字列が数値として解釈されることがありましたが、PHP 8では文字列が数値として解釈されることはなくなりました。
@エラーサプレッション演算子: PHP 8では、致命的なエラーを除き、ほとんどのエラーをサプレスする@演算子の効果が変更されました。
get_magic_quotes_runtime() と magic_quotes_runtime: これらの関数とINIディレクティブはPHP 8で削除されました。
create_function() 関数: この関数はPHP 8で削除されました。匿名関数を使用することが推奨されます。
each() 関数: この関数はPHP 8で削除されました。foreachを使用することが推奨されます。
real 型: real型はPHP 8で削除されました。float型を使用してください。
リソース型からオブジェクト型への変更: いくつかの拡張機能で、リソース型がオブジェクト型に置き換えられました。例えば、xml_parser_create() が返すリソースは、PHP 8ではオブジェクトを返します。
JITコンパイル: PHP 8ではJIT(Just In Time)コンパイルが導入されました。これは互換性の問題を直接引き起こすものではありませんが、パフォーマンスに影響を与える可能性があります。
エラーハンドリングの変更: PHP 8では、多くの警告と通知がエラーに変更されました。これにより、以前は警告だったものが、PHP 8ではスクリプトの実行を停止する可能性があります。
非推奨の機能: PHP 8では、いくつかの関数と機能が非推奨になりました。これらを使用している場合は、将来のバージョンで削除される可能性があるため、代替の方法に更新することが推奨されます。