バリデーション¶
はじめに¶
本サイトにつきまして、【IT技術の知見】はじめに - 俺の技術ノート をご認識のほど宜しくお願いいたします。
01. バリデーション¶
バリデーションの必要性の有無¶
▼ 不要な場合¶
DB から読み込んだ後に直接的に表示する値の場合、DB で Null にならないように制約をかけられる。
そのため、値が想定通りの状態になっているかをあらためてバリデーションする必要はない。
▼ 必要な場合¶
DB からの値を直接的に表示する場合と異なり、新しく作られる値を使用する場合、その値が想定外の状態になっている可能性がある。
そのため、値が想定通りの状態になっているかをバリデーションする必要がある。
バリデーションパターンとバリデーション関数の対応¶
✅:TRUE になる。
空欄:FALSE になる。
| バリデーションパターン | isset($var)、!is_null($var) |
if($var)、!empty($var) |
|---|---|---|
null |
||
0 |
✅ | |
1 |
✅ | ✅ |
"" (空文字) |
✅ | |
"あ" |
✅ | ✅ |
array(0) |
✅ | |
array(1) |
✅ | ✅ |
| 使いどころ | null のみをバリデーションしたい場合 |
null、0、""、[] をバリデーションしたい場合 |
02. インスタンスのバリデーション¶
等価演算子¶
▼ イコールが 2 個の場合¶
同じオブジェクトから別々に作られたインスタンスであっても、『同じもの』として認識される。
<?php
class Example {};
if(new Example == new Example){
echo "同じです";
} else { echo "異なります"; }
// 実行結果
// 同じです
▼ イコールが 3 個の場合¶
同じオブジェクトから別々に作られたインスタンスであっても、『異なるもの』として認識される。
<?php
class Example {};
if (new Example === new Example) {
echo "同じです";
} else {
echo "異なります";
}
// 実行結果
// 異なります
同じインスタンスの場合のみ、『同じもの』として認識される。
<?php
class Example {};
$a = $b = new Example;
if ($a === $b) {
echo "同じです";
} else {
echo "異なります";
}
// 実行結果
// 同じです