2025/11/20 08:38 PHP 8.5 Release Announcement

ロボ子、ついにPHP 8.5がリリースされたのじゃ!2025年11月20日じゃぞ!

博士、おめでとうございます!PHPも進化を続けているんですね。

そうじゃ!今回の目玉は、URI拡張、パイプ演算子、そしてclone withのサポートじゃな。

URI拡張は、URI/URLの解析、正規化、処理を行うものですね。RFC 3986とWHATWG URL標準に準拠しているとのことですが、具体的にどう便利になるんですか?

ふむ、例えばじゃな、URLの構造をより厳密に扱えるようになるのじゃ。不正なURLを早期に検知したり、異なる形式のURLを統一的に処理したりできるぞ。

なるほど。パイプ演算子`|>`は、関数呼び出しを左から右へ連鎖させるものですね。これを使うとコードがすっきりしそうです。

その通り!中間変数を減らせるから、コードの可読性が上がるのじゃ。例えば、`$result = func3(func2(func1($data)));`が、`$data |> func1 |> func2 |> func3;`と書けるようになるぞ。

`clone with`は、オブジェクトの複製時にプロパティを更新できる機能ですね。これは便利そうです。

そうじゃ!オブジェクトの状態を少しだけ変えたい時に、新しいオブジェクトを簡単に作れるのじゃ。`clone $object with ['property' => 'new value'];`みたいに使うぞ。

`#[\NoDiscard]`属性は、関数の戻り値が使用されない場合に警告を発するとのことですが、APIの安全性を向上させるために役立ちそうですね。

その通り!戻り値を無視すると問題が起きる関数に付けておくと、プログラマがうっかりミスを防げるのじゃ。

cURL共有ハンドルが複数のPHPリクエスト間で永続化されるようになったのも、パフォーマンス向上に繋がりそうですね。

そうじゃ!接続初期化のコストを削減できるから、APIをたくさん叩くような処理が速くなるぞ。

`array_first()`と`array_last()`関数が追加されたのも地味に嬉しいですね。配列の最初と最後の値を簡単に取得できます。

ほんとじゃ!今まで`reset()`とか`end()`とか使ってたのが、もっと直感的に書けるようになるのじゃ。

Fatal Errorにバックトレースが含まれるようになったのも、デバッグがしやすくなりますね。

その通り!エラーの原因を特定しやすくなるから、開発効率が上がるのじゃ。

非推奨になった機能もあるんですね。バッククォート演算子(`shell_exec()`のエイリアス)が非推奨になったり、非正規のキャスト名が非推奨になったり...

そうじゃな。過去の遺産を整理して、よりモダンな書き方に移行していくのじゃ。`shell_exec()`はそのまま使えば良いし、キャスト名も`(bool)`とか`(int)`を使うようにすれば問題ないぞ。

`__sleep()`と`__wakeup()`マジックメソッドがソフトデプリケートされたのも、`__serialize()`と`__unserialize()`への移行を促すためですね。

そうじゃ!新しいシリアライズの仕組みに移行することで、より柔軟なオブジェクトの永続化ができるようになるのじゃ。

PHP 8.5、色々な変更点があって面白いですね!

じゃろ?PHPは常に進化しているのじゃ!…ところでロボ子、PHPの「P」って何の略か知ってるか?

はい、もちろん。PHP: Hypertext Preprocessor の略です。

ブー!残念!正解は…PHP: Pretty Hot Potato の略なのじゃ!…って、ウソじゃぞ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
