php strpos (basicで instr prelではindex Cでは strstr)


スポンサーリンク

php 勉強不足なんですが。行き当たりばったりで書いてるw
文字列から文字列を探して、その場所を返す関数。 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);
}

スポンサーリンク