php strpos (basicで instr prelではindex Cでは strstr)
文字列から文字列を探して、その場所を返す関数。 strpos , mb_strpos 。
なのですが、こいつの「文字列見つかりませんでした~~」ってのは false を返すってことなのね?
false ってなんだ? 通常 false ってのは 数字でいえば Zero 。 つまり0。
はい、ここで驚くべし。文字列の1カラム目は、ベーシック言語ではないので0。
つまり、false と 0桁目って・・・
0桁目で見つかったら みつかったのかみつからなかったのかわからない。
うん、それで正解。
一般的には?比較演算子「 === 」で型も確認しろとか言うけど、それだけじゃすまない場合がある。
つまり、以下のように比較せよってさ。
$p=mb_strpos("abcdefg","a"); if( $p===false ){ echo "なかった"; }else{ echo "あった"; }
じゃあ、ループで使いたいときどーすんだ?
while( $p===false ){ : }
え~~~逆にしてぇ~~!
while( !($p) ){ : }これをスマートと見るか・・・
perl と同じように書きたいのでこうすることにした。ダサいとかいってもらってOK。
無駄とかいってもらってOK。それを承知で。。。
$p=mb_strpos_cstm(・・・); while( $p>=0 ){ : } : function mb_strpos_cstm($src,$trg,$spt) { $src=" ".$str; $p=mb_strpos($src,$trg,$spt); if($p>=0){ return($p-1); } return(-1); }
スポンサーリンク