私はこのように私の現在のプロジェクトでeval()
を使用しますと、それはちょっと安全ですので、名前$class_name
を持つクラスが存在する場合だけeval関数の代替手段は何ですか?
if (class_exists($class_name)) //$class_name depends on user input
eval($class_name.'::MyStaticMethod()');
eval()
が実行されますが、私はまだ、これが最善の解決策であるとは思いません。
eval()
を使用せずに上記のコードを実行できますか?
これらの情報(変数/関数とインスタンス/静的メンバーへの動的アクセス)は、よく知られており、PHPドキュメントの一部です。これをすべて答えとして集約することは、質問自体を「evalの代替手段」から「PHPが提供する動的アクセス」に変えなければ、特に有用ではありません。 –