👋
空の文字列("")とnullの違いについて
【概要】
あるデータ型の値が存在しないことをnullと表現します。
下記の通り、
空の文字列は文字列としての存在が「有る」ことを表します。
↕︎
一方nullは存在が「無い」状態を表し、
値が存在する場合とは別の対処をすることがあります。
【null】
例えば、
「配達希望日が未回答(null)の場合、最短でのお渡しになる」等、
配達希望日が指定された場合(値が存在する場合)とは別の対処が必要になったりします。
【補足】
nullable
nullableは、nullを許容するという意味です。
PHP(v7.1↑)だと、
パラメータや戻り値の型宣言で、nullable指定ができるようになりました。
nullable指定をすると、指定した型だけでなく null も渡せるようになります。
データ型の前にクエスチョンマークをつけると、nullable であることを指定できます。
例えば、アンケートの場合、回答を任意とすることができます。
<?php
function testReturn(): ?string
{
return 'elePHPant';
}
var_dump(testReturn());
function testReturn(): ?string
{
return null;
}
var_dump(testReturn());
function test(?string $name)
{
var_dump($name);
}
test('elePHPant');
test(null);
test();
Void
あるデータ型の値が存在しないことをnullと表現するのに対し、
データ型そのものが存在しないことをvoidと表現します。
例えば戻り値を返さないプログラムの場合、戻り値のデータ型を指定しようがないためvoidというキーワードが使われます。
【参照】
Discussion