【PHP】クラスプロパティの型指定(PHP7.4〜)

クラスプロパティの型指定

PHP7.4から、クラスのプロパティ(メンバ変数)のデータ型を指定できるようになっている。

環境: PHP 7.4.2

型指定

プロパティの型指定は下記のようにアクセス修飾子(下記ではpublic)と変数名の間に指定する。

(voidとcallable以外の型を指定可)

PHP基本的な型

<?php

namespace app\src;

class Member
{
    public int $id;
    public string $name;
    public bool $isEnrolled;
}

厳密な型チェック

厳密な型チェックを行う場合はタイプヒンティングの場合と同様、 declare(strict_types=1) を宣言する必要がある。

宣言がない場合は暗黙的にキャスト(型変換)され、例外を発生しない。

(実行)

<?php

declare(strict_types=1);

require_once __DIR__ . '/app/vendor/autoload.php';

$member = new app\src\Member();

$member->id = "1";

プロパティの型指定による、TypeError

Fatal error: Uncaught TypeError: Typed property app\src\Member::$id must be int, string used in

Follow me!