PHPの見直し ーNULLになるものならないものー
こんにちは、リスターマークです。
PHPの復習も今日で3回目です
何やかんやで3日坊主まで来ました。
果たして4日目が来るのか来ないのか(笑)
、、ってなわけで、今日もPHPを見直していきます
今回の復習はNULLについてです。
まず、NULLとは「何もない。空白」と略されます
つまり、存在しないものという感じで覚えておくことです。
そして次の条件でプログラミングではNULLと評価されます。
①変数に開示的にNULLが代入されている
②変数に値が代入されていない
③UNSETで変数を破棄されている
とのことです。
ここで復習ですが、「変数」とは何でしょう?
変数とはよく値を入れる箱とか、名札やニックネームみたいなものだといわれますが、
今回は右辺の値をいれる箱という概念で伝えていきます。
ケース1 変数に開示的にNULLが代入されている
$case1 = NULL;
var_dump($case1);
// 結果:NULL
今回のケースは、故意にこの箱には何も入れません。空っぽですと先に伝える方法です。
なので、箱の中身を見せてください(var_dump)といってもNULLで帰ってくるということです。
ケース2 変数に値が代入されていない
$case2; // 代入するものが無し
var_dump($case2);
// 結果: NULL (エラー文標示あり)
この場合、$case2の箱に何か入れますという宣言がありません。
その状態で$case2の中身を教えてくれ(var_dump)と言うても
何もありませんということでNULLが返ってきます。
ケース3 UNSETで変数が破棄されている
$case3 ='テスト';
unset($case3);
var_dump($case3);
// 結果: NULL (エラー文標示あり)
この場合も最初に'テスト'という値を$case3の箱に入れますが、
そのあとに$case3の箱の中身を全部空っぽにしてくださいというunset()の命令を行っているため
$case3の中身は空っぽなのでNULLになります。
また、今回のケース2、ケース3の方法ではパソコンによっては
このようなエラー文が表示されることがあります。
内容は変数が定義されてませんとのことです。
そりゃそうですよね。この箱にはこの値が入っているという宣言をしてないのでエラー文が出るのは正解です。
「CASE2ってなんじゃー? CASE3ってなんじゃー?」って言われているみたいなものです。
ここまでNULLの話をしてきましたが
逆にこれはNULLにならないケースも何個か紹介します。
● NULLにならないもの
ケース1 : 0(ゼロ)
$case4a = 0;
var_dump($case4a);
// 結果 int(0)
$case4b = '0'
var_dump($case4b);
// 結果 string(1)'0'
$case4aは数字の0として、
$case4bは文字の0として、箱の中に入ります。
つまり、0というものが存在するということです。
0=空っぽではないということです。
ケース2:’ ’ (スペース)
$case5 ='';
var_dump($case5);
// 結果: string( )''
* string()の()内はスペースの数の分だけの数字が入る
スペースも一つの枠という値として箱に入れます。
なので、’ ’の間が3つのスペースが入った’ ’の場合
string(3)''という結果が出ます。
なんか裸の王様みたいな感じですね。見えないものも見えるといわないといけない点でいうと
そんな感じでまとめてみました。
自分自身も今回まとめてみて、いつもより時間がかかりました。
いやー後の人に残すのは結構難しいですね。
けど、こうやって一つずつ足跡を残していこうと頑張っていきます。
最後までご覧いただきありがとうございました。
それではまた次回の投稿でお会いしましょう。