[PHP-dev 1268] Re: [PHP-doc 612] Re: mb_strpos

Seiji Masugata s.masugata @ digicom.dnp.co.jp
2006年 6月 5日 (月) 09:27:02 JST


桝形です。

しばらく放置していた以下の件ですが、そろそろ何とかしたいと
思っています。

次のリリースは「5.2.0」ですので、タイミング的には問題無いと
思います。


今の状態では「mbstring.func_overload」を利用しなければ実質的に
問題はありませんが、mbstringで提供している文字列関数はstring関数
のマルチバイト対応版だと思っているので、引数は併せておいた方が
よいように思えます。



追随できていなかったのが原因なので、潔く「mb_strrpos」関数の
引数を「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.
> 
> 
> http://jp2.php.net/strrpos
> 
> よく見てみると、第3引数([, int offset])が追加されています。
> しかし、mb_strrpos関数では、
> 
> http://jp2.php.net/mb_strrpos
> 
> int mb_strrpos ( string haystack, string needle [, string encoding] )
> 
> と、なっているので、mbstring.func_overloadでstrrpos関数をオーバー
> ロードした時に、引数の意味合いが変わってしまいますね。
> 
> needleの仕様はともかく、offsetの動作が変わるのは。。。という気がします。
> 
> 
> mbstring.func_overloadを仕様として残すのであれば、mb_strrpos関数側で
> 何かしらの対応は必要だと思います。

どんな結果に転がっても痛手を負うのは間違いないですが。。。

-- 
Seiji Masugata <s.masugata @ digicom.dnp.co.jp>



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