PHPのNullableな型宣言
最近PHP7でプログラムを書いたりしてます。
PHP7から使えるようになった型宣言を使って、型で最初から縛れるのはいいなー、気持ちいいなー、と思いながらプログラミングしてたのですが、
「あれ、でもnullの可能性がある場合はどんな風に型宣言すればいいんだっけ?」って思って調べたまとめ。
PHP7.1以上の場合
型の前に?
をつければいい。
<?php function test(?string $text): ?string{ return $text; } var_dump(test('hogehoge')); // => string(8) "hogehoge" var_dump(test(null)); // => NULL
PHP7.0の場合
nullableな型宣言はサポートされてません。
ただ、引数については下記のようにデフォルト引数を使うことで、型宣言をしつつnullを許容することはできます。
<?php function test(string $text = null) { return $text; } var_dump(test('hogehoge')); // => string(8) "hogehoge" var_dump(test(null)); // => NULL
無理やり感はありますが、この方法以外にやりようは無さそう。
PHP7.0は2018年12月でセキュリティサポートは切れてしまうこともあるので、PHP7.0の抜け道を探すよりもPHP7.1以上にアップデートしていった方がよいですね。