LoginSignup
1
0

More than 5 years have passed since last update.

NULLについての一つの解釈

Posted at

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とは、変数に値が定義されていない状態のこと」
「普通の状態とは、変数に何かしらの値が定義されている状態のこと」
ということができる。

以上

閲覧者諸氏、先輩方によりご指摘ご意見を頂ければ幸いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0