バリデーション処理(5-23~5-26)
バリデーション処理とは
入力された値が期待される値のものかチェックする事
例えば
・値が入力されているか?
・文字列の長さは適当な範囲か?
・数値が入力されているか?
・数値は適切な範囲内の値か?
・選択肢から選ばれた値か?
・書式が正しいか?(メールアドレス、電話番号など)
バリデーションの基本形
function validate($name)
//バリデーションメソッドを用意
{
$errors = [];
//エラーを入れる空配列を用意
if(!strlen($name)){
//$nameが未入力だったら
$errors['name'] = '社名を入力してください';
}elseif(strlen($name)>100){
//$nameが100文字を超えて入力されてたら
$errors['name'] = '社名は100文字以内で入力してください';
}
return $errors;
//エラー変数を返す
}
$name = trim(fgets(STDIN));
$validated = validate($name);
//入力された$nameをvalidate関数に入れる
//戻り値が$errorsなので$validatedには空配列かエラー内容が入る
if(count($validated)>0){
//エラー変数に何か含まれていた場合
foreach($validated as $error){
echo $error . PHP_EOL;
//エラー内容を表示する
}
return;
//処理を中断する
}
$sql = "INSERT INTO companies('name')VALUES({$name})";
//問題なければ処理を続ける
論理演算子を使おう
!(否定の演算子)
!$a
//$aがtrueでない時true
//$aも$bもtrueならtrue
//$aと$bのどちらかでもtrueならtrue
文字列を整数に変換しよう
型キャストを使うことで型を別の型へ変換できる
ユーザの入力値を適切な型に変換してプログラムで扱う時などに使用する
型キャストとは
変換しようとする型を括弧で括り、変換する変数の前に置くと(型キャスト)型を変換できる
(int) 整数への変換
・少数は切り捨て
・数字以外は0が出力される
(bool) 論理値への変換
(string) 文字列への変換
文字列を整数へ変換するなら
$a = '2';
var_dump((int)$a); //int(2)
比較演算子を使って数値を比較しよう
$a == $b
$aと$bが等しい場合にTRUE。型が違う場合はキャストされる(型変換される)
$a === $b
$aと$bが等しい場合にTRUE。キャストが行われない(厳密な比較)
$a != $b
$aと$bが等しくない場合にTRUE。型が違う場合はキャストされる
$a !== $b
$aと$bが等しくない場合にTRUE。キャストが行われない(厳密な比較)
$a < $b
$aが$bより小さい場合にTRUE
$a > $b
$aが$bより大きい場合にTRUE
$a <= $b
$aが$bより小さいか等しい場合にTRUE
$a >= $b
$aが$bより大きいか等しい場合にTRUE