[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

Null合体演算子

pointこの用語のポイント

pointプログラミングで出てくる演算子だよ

point値がNULLだったら違う値を入れたいときに使うよ

point見た目は「??」(ハテナマークが2つ)を使うプログラミング言語が多いよ

スポンサーリンク

簡単に書くよ

Null合体演算子とは

プログラミングで出てくる演算子の一つで「その値はNullかな~?Nullじゃなかったら、その値をそのまま使うよ~。Nullだったら、こっちの値を代わりに使うよ~」を意味する演算子
です。
演算子の見た目としては

「??」(ハテナマークが2つ)
を採用しているプログラミング言語が多いです。

image piyo

詳しく書くよ

まずは予備知識から行きましょう。

プログラミングは「プログラムを作ること」ね。
プログラムの元ネタである「ソースコード」を書く作業を指す場合もあります。

Null合体演算子

ソースコードを書くときに使う言葉は「プログラミング言語」です。
プログラミング言語には、いろいろな種類があります。
それぞれの言語によって書き方は違います。
ですが、基本的な部分の書き方は似ている場合が多いです。

変数」という用語も覚えておいてください。
変数は、プログラミング言語における「値を入れておく箱」です。

Null合体演算子2

あとは「演算子」の説明もしておきましょう。
演算子は「どんな演算をするか表す記号」です。
「+」「-」「*(×)」「/(÷)」の四則演算の記号をはじめ、なんかいろいろあります。

Null合体演算子3

最後に「NULL」の説明です。
NULLは「何も無いよー」な意味をあらわす単語です。
実際にはもう少し奥ゆかしい単語ですが、取りあえず「何も入っていないんだな~」と考えてください。
NULLは「Null」や「null」と書かれることもあります。
同じものだと思って構いません。

以上が予備知識です。

ここまでを踏まえて、変数がNullだったら他の値を入れるときに使う演算子が「Null合体演算子」です。
演算子の見た目としては「??」(ハテナマークが2つ)を採用しているプログラミング言語が多いです。
Perlの場合は「//」(スラッシュが2つ)だったり、例外もありますけどね。

そういえば、2015年12月現在、PHPバージョン7、つまりPHP7が登場しました。
PHP7ではNull合体演算子が使えますので、PHP7を例にして、Null合体演算子の説明をしていきます。

PHP7において、Null合体演算子を使う場合は、例えば以下のように書きます。

$ret = $hoge ?? "Nullだよ";

「$hoge」の中身がNullではない場合は「$hoge」の値が「$ret」に入ります。
Nullだった場合は「Nullだよ」という文章が「$ret」に入ります。

つまり、この内容は

if($hoge != null){
    $ret = $hoge;
}else{
    $ret = "Nullだよ";
}


と書くのと同じです。

実際には

if($hoge != null){

ではなく

if(!isset($hoge)){

と書くのが正しいですけどね。
PHPを知らない人でもイメージしやすいように、あえて

if($hoge != null){

と書いています。
実際にPHPでプログラミングする方は「isset()」を使うようにしてください。

話を戻します。

$ret = $hoge ?? "Nullだよ";



if($hoge != null){
    $ret = $hoge;
}else{
    $ret = "Nullだよ";
}


と同じです。

ついでに書くと「三項演算子」というのを使って

$ret = isset($hoge) ? $hoge : "Nullだよ";

と書いても同じ結果になります。

つまり、Null合体演算子なんて無くても何とかなるのです。
実際にNull合体演算子が無いプログラミング言語もありますからね。

それでは、なんで有るのかといえば「書くのが楽だから」です。

プログラミングをやっているとですね。

1.値がNullか判定
2.Nullだったら別の値を代入


をやりたい機会は腐るほどあります。
その処理を一行でサクっと書けるようにするための演算子がNull合体演算子です。

個人的には「Null合体演算子」よりも「Null置換演算子」の方が分かりやすいと思うのですけどね。
最初に作った人が「合体」にしたので、仕方ないですな。

image piyo2

一言でまとめるよ

まぁ「Null合体演算子」って単語が出てきたら「値がNullか判定して、Nullだったら違う値を入れるときに使う演算子なんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク