PHP中的类型声明

PHP7以后的版式声明更加丰富,尤其在7.4版本中显著改进,增加了许多类型声明的机会,现将其总结如下。

1.函数参数的类型(类型提示)

// int型のみ
function hoge(int $num)
{
    echo $num;
}
// デフォルト値
function hoge(int $num = 0)
{
    echo $num;
}
// null許容型
function hoge(?int $num)// int $num = nullも可
{
    echo $num;
}

// オブジェクト(ex.Laravel)
function hoge(Request $request)
{
    echo $request->hoge;
}

返回值

// int型のみ
function hoge(int $num): int
{
    return $num;
}

// null許容
function hoge(?int $num): ?int
{
    return $num;
}

// オブジェクト(ex.Laravel)
function hoge(Request $request): Request
{
    return $request;
}

// void(returnしないメソッド)
function hoge(Request $request): void
{
    echo $request->hoge;
}

属性(类变量)


class User
{
    // intのみ
    protected int $age;
    // デフォルト
    protected string $name = 'hoge';
    // null許容
    protected ?string $address;
    // オブジェクト
    protected Request $request;
}

虽然已经使用了7.4版本,但仍然有许多地方甚至连类型提示也没有,所以希望能积极使用它。