はい、私はEval()がどれほど恐ろしいかをよく知っています。私には選択の余地がありません。それは割り当てのためであり、教授は私たちにそれを使用するように指示しました。
Eval()を使用しているときに、PHPがクラス内からクラスのメンバー関数を呼び出せない理由を理解するのに苦労しています。例えば:
$code="class evalTest{
function f1(){
echo 'f1';
f2();
}
function f2(){
echo 'f2';
}
}
$x=new evalTest();
$x->f2();
$x->f1();";
eval($code);
echo 'test';
上記のコードは次のように出力されます。
f2f1
ページの残りの部分は空白になります。Eval()を使用して関数内から関数を呼び出すと、PHPスクリプト全体が停止するようです。最後の「エコー」テストでさえ。印刷されません。
これを機能させるためのトリックはありますか、それともこれはEval()の制限ですか?繰り返しになりますが、可能であればEval()の使用は避けたいと思いますが、特にEval()を使用するように指示されました。