去年のアドベントカレンダーでPHP8.1について少しだけ
書いてましたがちょうど一年たって11/24に8.2がメジャーリリースされました.
そこでリリース記念に8.2について書こう。
..と思ったら
PHP 8.2.0 RC7 available for testing
ってことでRC7がリリースになっていて延期されたようです。(12/8に?)
といってもすでにでている8.2の変更点がまるっきり変わるわけではないはず
なのでこのまま書いていきます。
https://wiki.php.net/rfc#php_82
とりあえず目についたやつをまず。
libmysqlを削除の提案。
https://wiki.php.net/rfc/mysqli_support_for_libmysql
自分の今のプロジェクトでは確か本番環境では使ってなかったが管理画面では使ってたような..
ということで詳細をみてみました。
そもそもなんで?と思ったら
libmysql のサポートを削除することで、PHP はコードやユニットテストを簡略化することができるようになります
や
PHPにmysqlndは同梱している、パフォーマンスの改善、非同期クエリなど。
一方libmysqlは
メモリ制限の無視、テストに失敗することが多い、windowsで使えないなどなど
libmysqlをそもそも選ぶ理由がほぼない状態だったのでまあ削除は当然か。
むしろ今まで残ってたのかという感じだが。
動的プロパティの非推奨
Deprecate dynamic properties
https://wiki.php.net/rfc/deprecate_dynamic_properties
1 2 3 4 5 6 7 8 9 10 11 |
class User { public $name; } $user = new User; // Assigns declared property User::$name. $user->name = "foo"; // Oops, a typo: $user->nane = "foo"; |
8.1までは上記でも何もエラーはでない。
8.2はワーニング
9.0でエラー