変数に、数字か特殊文字が含まれていた場合はエラーメッセージをエラー内容を格納する変数「$errors」に格納し、数字、特殊文字が含まれていない場合でも、カナ文字(カタカナ、ひらがな)以外が含まれている場合はエラーメッセージを「$errors」に格納したいと思っています。
以下のコードで試してみたのですが、「$first_name_kana」に文字列「あああ」が代入されていた場合、最初のif文の条件式ではFALSEになるのですが、次のif文ではtrueとなってしまいます。また、数字が$first_name_kanaに含まれていた場合は、最初のif文ではtrueになりますが、数字は2つ目のif文の条件式で評価し、エラーメッセージ「'名カナに数字や特殊文字は使用できません'」を$errorsに格納させたい為、この場合も意図した結果とはならないです。
php
1 var_dump($first_name_kana); 2 if(preg_match('/[^ぁ-んァ-ヶー]/u',$first_name_kana)){ 3 $errors['not_kana_charcters'] = '名カナはカナ文字を入力してください'; 4 }else if(preg_match('/[^a-zA-Z\s]/u',$first_name_kana)){ 5 $errors['format_err_first_name_kana'] = '名カナに数字や特殊文字は使用できません'; 6 }
こちらの問題を解決する為、解決法をご提示いただければ幸いです。
追記
エラー変数に格納するメッセージなのですが、仮に、$first_name_kanaに「あああ111」のように数字と文字列が格納されていた場合、数字が含まれている為、エラーメッセージとしては、「名カナはカナ文字を入力してください'」ではなく、「名カナに数字や特殊文字は使用できません」を格納したいです