eval: 文字列を PHP コードとして評価する (その他の関数) - PHPプロ!マニュアル
eval: 文字列を PHP コードとして評価する
eval
(PHP 4, PHP 5)
eval — 文字列を PHP コードとして評価する
説明
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.
参考
- call_user_func() - 最初の引数で指定したユーザ関数をコールする



ページのトップへ


一つの目安として、ECサイトの購入情報など絶対に消えてはいけないものはDBに、カートなどの一時的に使用する情報や、ユーザに任意のタイミングで消去されても構わないものはセッションにと使い分けるといいでしょう。