動的呼び出しは PHP では高度なものと考えられています。今日は、この高度なアクティビティが何であるかを見て、必要な友達がどのようなものを参照できるかを見てみましょう。
プログラムに判定をたくさん追加すると大変なことになります!例:
コードは次のとおりです | コードをコピー |
if($fun='a'){echo "Oops!";} elesif(){} ... else{ echo "まあ! ";}; |
これは本当に面倒で、後からプログラムを読み込んで修正するときに非常に面倒です。
現時点では、関数を使用して、実行される各コードセグメントを実装できます。
その後、さらに NB メソッドを使用してこれらの関数を実装できます。
そして、各関数が関数を実装しているため、保守がはるかに簡単です。
本題に入り、PHP で関数を動的に呼び出す機能が何であるかを見てみましょう:
この $fun() のように、PHP で関数を動的に呼び出すことができます。PHP パーサーは、変数 $fun 、たとえば $fun='a' の場合、パーサーは a(); という形式を認識し、関数 a を呼び出します。具体的なコードは次のとおりです:
コードは次のとおりです | コードをコピー |
//プログラムソース: PHP iask http://www.bkjia.com // controller.php (isset ($_GET['fun'])&&$_GET['fun']!='')?$fun=$_GET['fun']:$fun='def'; コントローラー($fun); functioncontroller($fun){ if(function_exists($fun)) $fun(); else echo "関数 {$fun} が定義されていません"; } function def() { echo "ユーザーがパラメータを渡さないため、デフォルトの関数 def() が呼び出されます"; } function a(){ echo "関数 a が呼び出されます! "; } function b(){ echo "関数 b が呼び出されます! = (isset($_REQUEST[action])? $_REQUEST[action]:""); | if($_action!=null&&$_action!=){
}else{
die(showErrMsg ( "?> | function showErrMsg($strMsg){ | ||||
?>
問題の重要な点: デフォルト関数 def() を呼び出します; このコードは簡潔で正しいですか?これらのコードをコピーして戻して、その効果を自分の目で確認できます。これらのコードは正常に実行されると断言できます。 さらに、テストにより、このメソッドは関数を動的に呼び出すだけでなく、次のようにオブジェクトを動的にインスタンス化できることが確認されました: $obj = new $obj();
技術記事 |