php初心者で勉強中の者です(サンプルプログラムで勉強中です)。
for文の使い方について、イマイチ理解ができていないので教えていただきたく。
まず、下記のように記述があるのですが、
php
1$telPattern = '/\A(090|080|070)-?\d{4}-?\d{4}\z/'; 2$tel1 = '090-1234-5678'; 3$tel2 = '08012345678'; 4$tel3 = 'abc-defg-hijk'; 5 6if ( preg_match ( $telPattern, $tel1 ) ){ 7 print 'マッチする'; 8} else { 9 print 'トシちゃん'; 10} 11 12if ( preg_match ( $telPattern, $tel2 ) ){ 13 print 'マッチする'; 14} else { 15 print 'トシちゃん'; 16} 17 18if ( preg_match ( $telPattern, $tel3 ) ){ 19 print 'マッチする'; 20} else { 21 print 'トシちゃん'; 22}
この正規表現にマッチするかどうかの記述をまとめて処理できないかと思い、下記のように記述してみました。
php
1$telArray = array( $tel1, $tel2, $tel3 ); 2for ( $i = 0; $i < count($telArray); $i++ ){ 3 if ( preg_match ( $telPattern, $telArray ) ){ 4 print 'マッチする'; 5 } else { 6 print 'トシちゃん'; 7 } 8}
するとブラウザに下記のようなエラーがでました。
Warning: preg_match() expects parameter 2 to be string, array given in C:\xampp\htdocs\study\0323.php on line 250 トシちゃん Warning: preg_match() expects parameter 2 to be string, array given in C:\xampp\htdocs\study\0323.php on line 250 トシちゃん Warning: preg_match() expects parameter 2 to be string, array given in C:\xampp\htdocs\study\0323.php on line 250 トシちゃん
preg_match 関数の第2引数は文字型でなければならないということだと思うのですが、この対処方法は無いものでしょうか。
実際に開発する際にこういった処理をするのかどうか分かりませんがご回答いただけますと幸いです。よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/23 08:43