[PHP-users 3760] Re: 配列変数から変数に取込んだ場合のちがいについて。

Shinichi Yamanaka php-users@php.gr.jp
Wed, 21 Nov 2001 16:32:10 +0900


山中です。

中村さん有難うございます。

> 今回のケースでは、eval('$ftp_user_pass='.$variable[3].';');は
> $ftp_user_pass=ccc
> ;
> と認識されています。
> 私も試して初めて気付いたのですが、PHPはダブルコーテーションで
> 囲まない文字列でも単語であれば変数に代入してくれるみたいです。

みたいですね、こちらでも確認してみました。
$variable[3]に入る値をいろいろ変えて試してみました。
で、現在分かっていることは
値の途中に半角スペースがあるとダメ
値の先頭に半角数字があるとダメ
半角記号はダメ(全部かどうかは分かりませんが)
と言った所でしょうか。(ちなみに全角文字はいけました)

今回、eval('$ftp_user_pass='.$variable[3].';');
でうまく動いたのは、たまたま$variable[3]に入る値の中に上記三つに当てはま
るものが無かっただけで偶然だったことがわかりました。
やはり、真っ先に
$variable=explode(':',trim($settei[0]));
で余分な改行を取り除いてから処理を続けるのが一番ですね。

有難うございました。

*******************
 Shinichi Yamanaka
yamashin@yabumi.com
*******************