LoginSignup
2

More than 3 years have passed since last update.

php7.1から使えるnullableな型宣言について

Last updated at Posted at 2019-10-25

タイプヒンティングが使えるようになるphp7系ですが、
php7.1はさらにパラメータや返り値の型宣言で nullable 指定ができるようになりました。

Null許容型

型の前にクエスチョンマークをつけると、nullable であることを指定できます。
こうすることで指定型だけでなくnullも渡せるようになります。

関数の戻り値の場合

<?php

function test_return(): ?string
{
    return 'hogehoge';
}

var_dump(test_return());

function test_return(): ?string
{
    return null;
}

var_dump(test_return());
出力結果
ーーーーー
string(8) "hogehoge"
NULL

上記のようにstring指定の型でもnullを返すことができます。

関数の引数の場合

function test_dump(?string $name)
{
    var_dump($name);
}

test('hogehoge');
test(null);
出力結果
ーーーーー
string(8) "hogehoge"
NULL

上記のようにstring指定の型でもnullを渡すことができます。

ちなみに、

test_dump();

で上記関数を呼び出した場合は、

Too few arguments to function test_dump(), 0 passed in ...
が発生します。

なので、

function test_dump(string $name = null)
{
    var_dump($name);
}

の定義とは違いますね。

参照

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2