PHPファイルはコマンドラインから実行
・標準入力に対してバリデーション
[名前]
・空チェック
・10文字以内
[年齢]
・空チェック
・数字であること
【仕様】
「あなたの名前を教えてください。」出力
↓
入力
↓
「あなたの年齢は何歳ですか?」出力
↓
入力
↓
プログラム終了
PHP
1<?php 2//バリデーション用の関数 3function checkName($name){ 4 if(empty($name)){ 5 echo 'empry'; 6 return false; 7 } 8 if(mb_strlen($name) > 10) { 9 echo '文字数オーバーです'; 10 return false; 11 } 12 return true; 13} 14//バリデーション用の関数 15function checkAge($age){ 16 if(empty($age)){ 17 echo 'empry'; 18 return false; 19 } 20 if(!is_numeric($age)){ 21 echo 'not numeric'; 22 return false; 23 } 24 return true; 25} 26 27echo 'あなたの名前を教えてください。'."\n"; 28$name = trim(fgets(STDIN)); 29 30echo 'あなたの年齢は何歳ですか?'."\n"; 31$age = trim(fgets(STDIN)); 32 33 34//標準入力用の関数 35function input(){ 36 $input = trim(fgets(STDIN)); 37 //名前の入力なら、checkNameを呼ぶ 38 $check = checkName($input); 39 //年齢の入力なら、checkAgeを呼ぶ 40 $check = checkAge($input); 41 //バリデーションがNGなら、input関数を再帰 42 return $input; 43} 44$resultName = //input関数を呼ぶ 45$resultAge = //input関数を呼ぶ 46
【解決したいこと】
標準入力用の関数input()にて名前の入力なのか、年齢の入力なのか判別する書き方(引数になにをいれるべきか)がわからないので解法を教えていただけないでしょうか。
よろしくお願い致します。
あなたの回答
tips
プレビュー