PHP8.1にNever型が追加されました。読んで字の如し。この型を宣言した関数はPHPプログラムの処理が必ず終了することを指します。
終了は『関数で終わらせる』『例外をスローする』『無限ループ』の3つ。
ん? 無限ループもですか? ってかんじ。これ引っかかる人多いんじゃないかな?
続きを読むWebのサーバーサイドでよく使われるプログラム言語のPHP。2020年11月26日、5年ぶりにメジャーアップデートしてPHP8がリリースされました。
そして2021年11月25日に最初のマイナーバージョンアップのPHP8.1がリリースされました。きっちり1年後の律儀な対応。
マイナーバージョンだからといってナメてはいけません。新機能の追加もあり、それは使い勝手をよくするもの。
そのPHP8.1について情報を発信します。
自分で情報を探しながらやっても、なかなかスムーズに答えにたどりつかない人向けです。
経験が足りないだけで、遅かったり、失敗しても自信をなくさなくていいです。いまは大きくなるために、技術を知って試す時期なので。
むしろたくさん悩んで、フリーズして、失敗してください。気がついたら最適な答えを出す力が自然と身についているでしょう。
PHP8.1にNever型が追加されました。読んで字の如し。この型を宣言した関数はPHPプログラムの処理が必ず終了することを指します。
終了は『関数で終わらせる』『例外をスローする』『無限ループ』の3つ。
ん? 無限ループもですか? ってかんじ。これ引っかかる人多いんじゃないかな?
続きを読む配列のマージには、array_merge() 以外に、'...' を使った方法もあります。
それは数値の配列キーにしか対応してなかったんですが、PHP8.1から文字列のキーも使えるようになりました。
この配列のマージのことを『配列のアンパック』と言います。また一般的にはスプレッド構文・スプレッド演算子と呼ばれる。
続きを読むPHP8.1から、クラスオブジェクトのプロパティを読み取り専用にできるようになりました。
プロパティ変数名の左に readonly キーワードを付けるだけ。
簡単そうに見えますが(じっさいに簡単。)、いろいろと制約があります。サンプルを交えながら見ていきましょう。
続きを読むEnum(列挙型)は、オブジェクト指向言語ではおなじみのデータ型ですが、PHP8.1でついに使えるようになりました。
JavaやC++を知ってる人にはかんたんです。ほぼ同じような仕様になってるので。
新しく追加された機能なので、もちろん、8.0以下との互換性はありません。
(8.0以下では文法エラーになる。)
続きを読む列挙型(Enum)は一部ですがシリアライズできます。
(クラスの一種なので当然か。)
PHPのドキュメントを見ると、Pure EnumのJSONエンコードはエラー例外が発生するとありますが、例外はスローされません。
サンプルを動かしながら説明します。
続きを読む列挙型(Enum)にはメソッドやインターフェイスが追加できるように、トレイト(trait)も追加できます。
トレイトはメソッドをまとめたもので、インターフェイスやクラスの継承とは別のメソッド共通使用の方法です。
Enumだからといって特別なことはありません。使い方は通常のクラスと同じ。
続きを読む