Abstract
先日PHPのサーバーサイドプログラミングの勉強を始め、
テキストフォーム送信のHTTPリクエストの条件分岐処理について勉強しているとき、
nullについての理解に迫られた。
NULLとは、あらゆるプログラム言語において、値の状態を表す特殊な値である。
数字の零を意味するドイツ語のnullからきていると思われる。
NULLとかくと、それは「NULL型の値『NULL』」として解釈される。
NULLとは一体なんなのか。
初心者の私が畏れ多いが、nullというものについて、以下に私なりの解釈(仮説)を述べたいと思う。
妥当性を欠いている箇所、考え方全体の違和感、等あれば、ご指摘頂ければ幸いである。
nullとは(私の解釈)
あるとき、世のプログラマーたちは、
「あらゆる種類の値に、2種類の『状態』をもたせたい」と考えた。
そこで、この二つの状態を区別するために、『null型』というデータ型が作られた。
これにより、あらゆる種類の値は、
『null型の値』と『null型でない値』
という具合に、値を二つの状態に分けることができるようになった。
プログラマーたちは
『null型の値』と『null型でない値』に対して、以下のようにコマンドを割り当てることにした:
『null型の値』:中身がnullの変数(または定数)、中身が定義されていない変数(または定数)、中身が""の変数(または定数)
『null型でない値』:上以外の全ての値
これにより、例えば以下のように定義された変数は全てnull型:
var hogehoge = null;
var foo;
var hensuu = "";
であり、
以下のように定義されたされた変数(または定数)はnull型でない諸データ型:
var zero = 0;//整数型数値「ゼロ」
var hogehoge = 114514;//整数型数値「114514」
var foo ="こんにちは";//文字列「こんにちは」
var boolean = true;//ブール値「true」
var PI = 3.14;//実数型数値「3.14」
という具合に分けられるようになった。
この構造を使って、彼らは、
前者のように、ある値があって、それがnull型であることを、「その値は『null』である」
後者のように、ある値があって、それがnull型でないことを、「その値は『普通の値』である」
という表現を与えることにした。
さらに、『変数』という文脈に限り、これらにかみ砕いた解釈を与えると、
「nullとは、変数に値が定義されていない状態のこと」
「普通の状態とは、変数に何かしらの値が定義されている状態のこと」
ということができる。
以上
閲覧者諸氏、先輩方によりご指摘ご意見を頂ければ幸いです。