PHPは変数の型に自由度があるプログラム言語のひとつですが、もともと型宣言ができるようになっていて、PHP8はデータ型の厳密化へ舵を切りました。
PHP8では型に合わないパラメータや戻り値はエラーになるほど。
そこで従来の型にこだわらないために用意されたのがmixed型です。
続きを読むWebのサーバーサイドでよく使われるプログラム言語のPHP。2020年11月26日、5年ぶりにメジャーアップデートしてPHP8がリリースされました。
今は、1回目のマイナーアップデートが行われPHP8.1です。
そのPHP8について情報を発信します。
自分で情報を探しながらやっても、なかなかスムーズに答えにたどりつかない人向けです。
経験が足りないだけで、遅かったり、失敗しても自信をなくさなくていいです。いまは大きくなるために、技術を知って試す時期なので。
むしろたくさん悩んで、フリーズして、失敗してください。気がついたら最適な答えを出す力が自然と身についているでしょう。
PHPは変数の型に自由度があるプログラム言語のひとつですが、もともと型宣言ができるようになっていて、PHP8はデータ型の厳密化へ舵を切りました。
PHP8では型に合わないパラメータや戻り値はエラーになるほど。
そこで従来の型にこだわらないために用意されたのがmixed型です。
続きを読むPHP8から、or(または)の意味を持つパイプライン(|)を使って、型宣言を複数指定できるようになりました。
union型は複数宣言の型の名称で、'union' という型の記述はできません。
同じように特定の型を表さないmixedとはそこはちがう。
続きを読むPHP8から、コンストラクタのパラメータ変数をクラスのプロパティにするシンタックス(文法)が追加されました。
これで、コンストラクタ内で '$this->〇〇 = 〇〇' というパラメータをプロパティに代入する処理が不要になります。
プログラミング記述省略のシンタックス変更のひとつ。
続きを読むPHP8.1から、クラスオブジェクトのプロパティを読み取り専用にできるようになりました。
プロパティ変数名の左に readonly キーワードを付けるだけ。
簡単そうに見えますが(じっさいに簡単。)、いろいろと制約があります。サンプルを交えながら見ていきましょう。
続きを読むEnum(列挙型)は、オブジェクト指向言語ではおなじみのデータ型ですが、PHP8.1でついに使えるようになりました。
JavaやC++を知ってる人にはかんたんです。ほぼ同じような仕様になってるので。
新しく追加された機能なので、もちろん、8.0以下との互換性はありません。
(8.0以下では文法エラーになる。)
続きを読む列挙型(Enum)は一部ですがシリアライズできます。
(クラスの一種なので当然か。)
PHPのドキュメントを見ると、Pure EnumのJSONエンコードはエラー例外が発生するとありますが、例外はスローされません。
サンプルを動かしながら説明します。
続きを読む