【PHP】PHP8.4リリース

  • 2024年11月22日
  • PHP

 PHP8.4がリリースされました。セキュリティサポートは2028-12-31までの予定です。

PHP: PHP 8.4.0 Release Announcement
PHP: PHP 8.3.x から PHP 8.4.x への移行 – Manual

 これまで通り公式から実行ファイルが提供されています。

PHP: Downloads
PHP For Windows: Binaries and sources Releases
php Tags | Docker Hub#name=8.4

 PHP8.4から追加された機能は既に記事にされてる方も多く、次リンク等で読めます。

【PHP8.4】PHP8.4の新機能 #rfc – Qiita
【PHP】PHP8.4で注目してる新機能の紹介│株式会社シーポイントラボ

 PHP8.3から制限された機能は少なく、なんとなくスッとバージョンアップできそうな気がします。恐らく非推奨になった暗黙的な nullable パラメータが引っ掛かるでしょうが他は少ないはずです。

 暗黙的な nullable パラメータの非推奨は次のようなものです。

<?php
// stringのみでは null を受け入れられない。一方でデフォルト値としてnullを受け入れられてしまう。
// この不一致を避けるための非推奨化
function foo(string $a = null) {}

 これを次のように直します

<?php
function foo(string|null $a = null) {}
// あるいは
function foo(?string $a = null) {}

 ちょっと手間ですが正規表現でfunction\s*[a-zA-Z][a-zA-Z0-9]*.*[(,]\s((?!\$)[a-zA-Z0-9|\s]+)(\s*\$[a-zA-Z][0-9a-zA-Z]+\s*=\s*null)と検索してプロジェクトの中の型と=nullのデフォルト値を持つ問題が起きそうな関数とメソッドを洗い出し、それぞれつぶすことになりそうです。上記正規表現をもういくらか加工すれば正規表現の置換で全部解決できるかもしれません。正規表現の図示は次ぺージでできるので活用できそうです。
 Regexper

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG