今日、私はインタープリター言語の「チップ」を使用する別の方法を見つけました-プログラム中にプログラムコードを作成して実行します。
コードの一部をデータベースに配置できます。
これは何のためですか?
私はそのような仕事に出会いました-オンラインテストを書くこと。
各テストには、ユーザーの回答が割り当てられた結果の説明番号の機能があります
また、テストごとにこの関数は異なる場合があります。 そして、新しいテストを追加するたびに、サイトのプログラムコードを変更したくありません。 私が見つけた解決策は、このコードをデータベースのテキストタイプフィールドに保存することでした。
そして、テスト結果を計算したい場所で、次のように書きます:
eval(@ test.function)
関数-これは、テストを説明するデータベーステーブル内のセルです。
コードは単にプログラムのこの場所に挿入されて実行され、ユーザー応答の結果をパラメーターとして渡す必要さえありません。
確かに、ローカル変数を宣言するためにevalによって渡された行内にある場合、外部プログラムはそれを表示しません(少なくともコンソールではすべては大丈夫でしたが、表示されませんでした)。
私は、厳密なOOPの愛好家からの公正な批判を疑っています。 しかし、私はこの例をOOPと一致させません;望むなら、実験してください。