[PHP-doc 616] Re: [PHP-dev 1223] Re: Re: mb_strpos

TAKAGI Masahiro matakagi @ osk2.3web.ne.jp
2006年 2月 27日 (月) 12:50:50 JST


高木です。

At Sun, 26 Feb 2006 13:49:30 +0900,
Seiji Masugata wrote:
> 
> > 1.mb_strrpos() は PHP4 ではバグってる。
> > 2.(ちょっと無理があるけど(^^;) (1) を仕様と考えるなら、マニュア
> >   ルに PHP4 と PHP5 じゃ動作が違うよって書く。
> 
> 正解は2だと思うのですが。
> 
> (PHP4での)strrpos関数とmb_strrpos関数は仕様が元々違っています。
> (PHP3での)strrpos関数とmbstrrpos関数も同様に、です。
> 
> http://jp2.php.net/strrpos
> 
> 注意:  PHP 5.0.0 以降、needle  は 1 文字以上の文字列を指定可能です。
> 
> とあるので(PHP5から)strrposの仕様が変わっています。
> (mb_strrpos関数と同じ仕様になった)
> 
そのとおりでしょうね。
PHP 5 のソースアーカイブに含まれる「README.PHP4-TO-PHP5-THIN-CHANGES」
というファイルの先頭にも、しっかりこのことが書かれています。
> 1. strrpos() and strripos() now use the entire string as a needle. Be aware
>    that the existing scripts may no longer work as you expect.
> 
>    EX :
>    <?php
>    var_dump(strrpos("ABCDEF","DEF"));
>    var_dump(strrpos("ABCDEF","DAF"));
>    ?>
> 
>    Will give you different results. The former returns 3 while the latter
>    returns false rather than the position of the last occurrence of 'D'.
>    The same applies to strripos().

-- 
高木 正弘 mailto:matakagi @ osk2.3web.ne.jp


PHP-doc メーリングリストの案内