0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 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);
}

の定義とは違いますね。

参照

0
2
0

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
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?