新芽の観察日記

業界歴がそこそこになるWebエンジニア 情報発信するぞ

PHP8で交差型宣言が可能になる

TL;DR

PHP8.1から、以下の記法で交差型宣言が可能になる。

<?php
class sampleA {
    private countUpClass&countDownClass $countClass;
...
}

解説

上記の例で言えば、countUpClass型か、countDownClass型を受け入れる。それ以外は受け付けない変数として宣言できる。

今まではアノテーションに以下のように指定するなどの方法しかなく、PHPの自然な言語構造に組み込まれていなかった。

<?php
    /** @var Traversable&Countable */
    private $both = null;

今回の変更によりPHPの言語構造として組み込まれることとなる。 適応バージョンはPHP8.1。

出展: wiki.php.net

目まぐるしい変化が続き、別物と捉えられることもある今回のPHP8へのバージョンアップ。ふるい落とされないようにしていきたい。