初心者でPHPを勉強しております。
現在、お問い合わせフォームを作成しておりバリデーション部分の共通化に取り組んでおります。前回の質問で頂いた回答を基に色々と試しております。
勉強していく中で、しっかりとクラスについて理解できるようになりたいと思うのですが、まだクラスと普通の関数の違いやそれぞれの使いどころが理解できていなかったりします。今回、特に分からなくて困っているのはクラスのメソッドを呼び出すときです。
お問い合わせフォームでバリデーションをクラス化したものを作っています。
class Validate{ public function checkRequierd($aryList,$inputData){ $errMsg = ""; foreach($aryList as $key=>$val){ if($inputData[$key] === ""){ $errMsg[$key] = $val . "を入力してください"; } } return $errMsg; } public function checkTel($tel){ $errMsg = ""; $pattern = "/^(0{1}\d{1,4}-{0,1}\d{1,4}-{0,1}\d{4})$/"; if(!preg_match($pattern, $tel)){ $errMsg = "電話番号を正しく入力してください"; } var_dump($errMsg); return $errMsg; } public function checkMail($mail){ $errMsg = ""; $pattern = "/^([0-9A-Za-z/\_.\-]{1,255})\@([0-9A-Za-z\_\-]+).([0-9A-Za-z\_.\-]*)[a-z]{2}$/"; if(!preg_match($pattern,$mail)){ $errMsg = "メールアドレスを正しく入力してください"; } var_dump($errMsg); return $errMsg; } } ?>
エラーチェックはすべての項目を同時に行いたいので、呼び出す側にはこんな感じで書いています。(この3つ並べる書き方も変な気がしています。。)
//エラーチェックを行う $validate = new Validate(); $err = $validate->checkRequierd($aryRequierd,$post); $err2 = $validate->checkTel($post["tel"]); $err3 = $validate->checkMail($post["mail"]);
ただ、やりたい事は呼び出したメソッドの結果を$errという変数に入れて、この変数の中身に空文字ではないものが0以上だったら入力ページから遷移できないようにしたいので、それぞれの結果がそれぞれの変数に代入されてしまうと条件式も複数書くことなり良くない気がします。ただ、呼び出してからどのような処理を書けばよいのかが分かりません。
まとめると、
・メソッドを複数呼び出すときはどのように書くのか?
・その結果をひとつの変数にすべて代入したいときはどのような処理を書けばよいのか?
上記の2点が一番知りたいことになります。分かりにくい質問ですみません。
回答3件
あなたの回答
tips
プレビュー