プログラミングでは、複数の変数をまとめて表現するのに '...' を使い、一般的にスプレッド演算子といいます。またはスプレッド構文ともいう。
しかしPHPは『スプレッド』という言葉は使いません。アンパックと表現しますが世間的にはスプレッド演算子/構文と言われています。
続きを読むプログラミングでは、複数の変数をまとめて表現するのに '...' を使い、一般的にスプレッド演算子といいます。またはスプレッド構文ともいう。
しかしPHPは『スプレッド』という言葉は使いません。アンパックと表現しますが世間的にはスプレッド演算子/構文と言われています。
続きを読むPHP8.1から、クラスオブジェクトのプロパティを読み取り専用にできるようになりました。
プロパティ変数名の左に readonly キーワードを付けるだけ。
簡単そうに見えますが(じっさいに簡単。)、いろいろと制約があります。サンプルを交えながら見ていきましょう。
続きを読むEnum(列挙型)は、オブジェクト指向言語ではおなじみのデータ型ですが、PHP8.1でついに使えるようになりました。
JavaやC++を知ってる人にはかんたんです。ほぼ同じような仕様になってるので。
新しく追加された機能なので、もちろん、8.0以下との互換性はありません。
(8.0以下では文法エラーになる。)
続きを読む列挙型(Enum)は一部ですがシリアライズできます。
(クラスの一種なので当然か。)
PHPのドキュメントを見ると、Pure EnumのJSONエンコードはエラー例外が発生するとありますが、例外はスローされません。
サンプルを動かしながら説明します。
続きを読む列挙型(Enum)にはメソッドやインターフェイスが追加できるように、トレイト(trait)も追加できます。
トレイトはメソッドをまとめたもので、インターフェイスやクラスの継承とは別のメソッド共通使用の方法です。
Enumだからといって特別なことはありません。使い方は通常のクラスと同じ。
続きを読む列挙型(Enum)にはメソッドやインターフェイスが追加できるように、定数も追加できます。
最初は『これいるんだろうか? Enumって定数の集まりだよね?』と思いましたが、よくよく考えてみると使いみちはあった。
case とconst はともに定数で参照する側からは同じなんですが、性格がちがいます。
続きを読む