eval
(PHP 3, PHP 4, PHP 5)
eval -- 文字列を PHP コードとして評価する
説明
mixed
eval ( string code_str )
code_str
で与えられた文字列を PHP コードとして評価します。
中でも、データベースのテキストフィールドにコードを保存し、
後で実行するためには便利です。
eval() を使用する際、注意するべき点がいくつかあります。
パーサが eval() の処理中に落ちないように、
渡す文字列はセミコロンで文が終了するといった有効な PHP コード
である必要があります。また、code_str
の
中の文字を適切にエスケープする必要があります。
HTML 出力と PHP コードを一緒に使用するために、
PHP 終了タグを使用して PHP モードを抜けることが可能です。
eval() の中で値を与えた変数は、
この後、メインスクリプトの中でもこれらの値を維持することも
覚えておいてください。
パラメータ
code_str
評価するコード文字列。
code_str
には
PHP
開始タグを含める必要はありません。
return 文は、文字列の評価をただちに終了します。
返り値
PHP 4 では、評価されるコードの中で return が
コールされない限り、eval() は NULL を返します。
return がコールされた場合は、その値を返します。
評価されるコードの中でパースエラーが発生した場合は、
eval() は FALSE を返します。
PHP 3 では、eval() は値を返しません。
例
例 1. eval() の例 - 簡単なテキストのマージ
<?php $string = 'cup'; $name = 'coffee'; $str = 'This is a $string with my $name in it.'; echo $str. "\n"; eval("\$str = \"$str\";"); echo $str. "\n"; ?>
|
上の例の出力は以下となります。 This is a $string with my $name in it.
This is a cup with my coffee in it. |
|
注意
注意: これは、関数ではなく
言語構造のため、可変関数 を用いて
コールすることはできません。
ティップ: ブラウザに直接結果を出力する
すべてのものと同様に、出力制御関数
を使用してこの関数の出力をキャプチャーし、(例えば)文字列
(string)に保存することが可能です。
注意:
評価されるコードの中で致命的なエラーが発生した場合は、
スクリプト全体が終了します。