[PHP-users 19367]Re: mb_convert_variablesに配列を指定した時の挙動に関して

Youichi Iwakiri yiwakiri @ st.rim.or.jp
2003年 12月 16日 (火) 18:40:54 JST


いわきりです

Seiji Masugata wrote in <200312160833.hBG8XtoC074984 @ azusa.digicom.dnp.co.jp> :
>この環境で、mb_convert_variablesに配列を指定すると自分が期待した動作
>になりません。
>自分が期待した動作というのは、指定した配列以外は変換をしないで欲しい
>という事です。
>しかし、現状では、指定していない配列も変換を行っています。
>通常の変数では問題ないのに、配列だと何で駄目なんだろう?

>// 挙動不信?
>$Array1  = array( "桝形" );
>$Array2  = $Array1;
>
>mb_convert_variables( "SJIS",
>                      mb_detect_order( ),
>                      $Array2 );

>と、あるので、恐らく、内部的にリファレンスがどう扱われているか。。。
>なんでしょうけど、

パッと見た感じだと、mb_convert_variables()の仕様不備な気がしなくも
ありません。PHP4での代入は、コピーだというのが一般的に知られている
と思いますが、変数への操作が行われるまでは、内部的に参照扱いで、
操作される段階で複製が行われていたと記憶しています。
操作する処理を行うmb_convert_variables()が複製を取っていないのが
問題だと思います。

http://ns1.php.gr.jp/php-jp/archives/msg12126.html

#過去にも一度、話題になってます。

-- 
Youichi Iwakiri



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