2017-02-25 4 views
0

のindex.php注意:配列値から動的に文字列への変換アレイ呼び出し方法

include_once "system/libs/Main.php"; 
include_once "system/libs/FController.php"; 

$url = $_GET['url']; 
$url = rtrim($url,'/'); 
$url =explode("/", $url); 

include('app/controllers/'.$url[0].'.php'); 

$ctlr = new $url[0](); 
$ctlr->$url[1](); 

==================== ==

アレイインデックスからエコーするとOKです。 と私は直接それもOKメソッドを呼び出すとき。

しかし、配列のインデックス値からメソッドを動的に呼び出すと、 "通知:配列から文字列への変換"というメッセージが表示されます。

+1

あなたのコードは次のようになりますか? – hassan

答えて

0

$url[1]を角かっこで囲んでみてください(ただし、PHPを$ _GETで実行することはセキュリティには最適ではありません)。配列のインデックスがここにある場合

$ctlr->{$url[1]}(); 
+0

お返事ありがとうございます。できます! :) ところで、私はmvc構造体を使いたいので、この場合は$ _GETの代わりに何を使うべきですか?私はこのようにすべてのコントローラ、モデル、メソッドを渡します。 – Forkan

+0

@Forkan $ _GETを使って動的に関数を実行するのではなく、 'switch($ url [1])'を使用して、それぞれのメソッドが "secure" (別名、get要求を使用してマシン上でコードを実行することができます)。 Exept、あなたのコードは大丈夫です:) – Ad5001

関連する問題