eval 文字列を PHP コードとして評価する &reftitle.description; mixedeval stringcode 指定した code を PHP コードとして評価します。 eval非常に危険な言語構造です。 というのも、任意の PHP コードを実行できてしまうからです。 これを使うことはおすすめしません。 いろいろ検討した結果どうしても使わざるを得なくなった場合は、細心の注意を払って使いましょう。 ユーザーから受け取ったデータをそのまま渡してはいけません。 渡す前に、適切な検証が必要です。 &reftitle.parameters; code 有効な PHP コード。これを評価します。 PHP 開始タグを含めてはいけません。つまり、 '<? echo "Hi!"; >' ではなく 'echo "Hi!";' を渡さなければならないということです。 適切に PHP タグを使えば、PHP モードからいったん抜けてもう一度 PHP モードに戻るということも可能です。 たとえば、このようになります。 'echo "PHP モード!"; ?>HTML モード!<? echo "ふたたび PHP モード!";' それはさておき、渡すコードは PHP として有効な形式でなければなりません。 つまり、すべての文はセミコロンで終了する必要があるということです。 たとえば 'echo "やあ!"' はパースエラーになりますが、 'echo "やあ!";' は動作します。 return 文は、コードの評価をただちに終了します。 コードの実行は、eval を呼び出したスコープ内で行われます。 したがって、eval の中で定義したり変更したりした変数は eval を抜けた後でも参照可能です。 &reftitle.returnvalues; 評価されるコードの中で return が コールされない限り、eval は &null; を返します。 return がコールされた場合は、その値を返します。 評価されるコードの中でパースエラーが発生した場合は、 eval は &false; を返します。 それ以降のコードは通常通り実行されます。 eval の中でのパースエラーを set_error_handler で捕捉することはできません。 &reftitle.examples; <function>eval</function> の例 - 簡単なテキストのマージ ]]> &example.outputs; &reftitle.notes; ¬e.language-construct; &tip.ob-capture; 評価されるコードの中で致命的なエラーが発生した場合は、 スクリプト全体が終了します。 &reftitle.seealso; call_user_func