[PHP-users 14183] ダブルクオートやPHPの変数について

akashi php-users@php.gr.jp
2003年 3月 23日 (日) 05:52:15 JST


いつもMLだよりで恐縮です。MTです。

ユーザー定義関数 を作成し、POSTデータを処理しようと次のようにしました。

function GetData($str){
 // htmlタグ除去や文字コード変換
 return $str
}

で、スクリプト内で
$FORM  = GetData("$_POST['name']")

とやると、$FORMは空でした。
いろいろ試した挙句、

$FORM  = GetData($_POST['name'])

とダブルクオートをはずせば処理された文字列が入るようになりました。

また、echo <<<END のヒアドキュメント内で

echo <<<END
お名前 :$_POST['name'] 
END;

とやると、お名前欄には何も入らず、

$FORM = $_POST['name'];

echo <<<END
お名前 :$FORM
END;

のように一度他の変数に入れれば、入るようになりました。
また、

$FORM[name] = $_POST['name'];

echo <<<END
お名前 :$FORM[name]
END;

配列を使った場合も表示されませんでした。

以上から
1.関数に引数を渡すとき、""でくくったときとくくらないとき、
    なにが違うのか。(変数が展開されるのはわかっていますが...)
2.ヒアドキュメント内ではスーパーグローバル変数、または単に
    配列が使えないのか。

きっちりと分かっておきたいので、ご助言いただきたいのですが。
よろしくお願いします。





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