無料CGI、PHPサイト(確認画面付きメールフォーム・メーリングリスト・メルマガ設置、逆アクセスランキング、画像カウンター等)PHPマニュアル by k-sky

eval

(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 文は、文字列の評価をただちに終了します。

返り値

評価されるコードの中で return が コールされない限り、eval()NULL を返します。 return がコールされた場合は、その値を返します。 評価されるコードの中でパースエラーが発生した場合は、 eval()FALSE を返します。 それ以降のコードは通常通り実行されます。 eval() の中でのパースエラーを set_error_handler() で捕捉することはできません。

例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)に保存することが可能です。

注意: 評価されるコードの中で致命的なエラーが発生した場合は、 スクリプト全体が終了します。