[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 メーリングリストの案内