👋

空の文字列("")とnullの違いについて

2024/08/13に公開

概要

下記の通り、
空の文字列は文字列としての存在が「有る」ことを表します。
↕︎
一方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();

参照

https://www.php.net/manual/ja/migration71.new-features.php

Discussion