apice-technologymemorandum

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では、いくつかの関数と機能が非推奨になりました。これらを使用している場合は、将来のバージョンで削除される可能性があるため、代替の方法に更新することが推奨されます。

ソフトウエア・IT TOOLカテゴリーに戻る

1