我正在构建一个前端控制器,我需要在$ _GET数组中使用params的调用类。所以,当我在index.php
中尝试这个时<?php
try{
if(filter_input_array(INPUT_GET)!==FALSE OR filter_input_array(INPUT_GET)!==FALSE){
$get = ['module'=>[FILTER_SANITIZE_SPECIAL_CHARS, FILTER_FLAG_STRIP_HIGH],
'method'=>[FILTER_SANITIZE_SPECIAL_CHARS, FILTER_FLAG_STRIP_HIGH],
'args'=>[FILTER_SANITIZE_SPECIAL_CHARS, FILTER_FLAG_STRIP_HIGH]];
$args = \filter_input_array(\INPUT_GET, $get);
//here is the problem syntax
echo (new \controller\$args['module']())->$args['method']($args['args']);
}
} catch (Exception $ex) {
echo "page not found";
}
?>
PHP解析器给我一个错误语法(期望的标识符)。
那么,我该如何解决这个问题呢?你知道一些可能的语法或不同的方法吗?
我想要与OOP合作。谢谢大家(对不起我的英语,我的母语是西班牙语)。
答案 0 :(得分:0)
以下是类名,方法名和参数是动态http://goo.gl/Oi6kCU
的示例<?php
namespace foo;
class Cat {
function speak($word) {echo "meoow $word\n";}
}
class Dog {
function speak($word) {echo "woof $word\n";}
}
function callInFoo($cls, $method, $arg) {
$fullName = "foo\\" . $cls;
$obj = new $fullName;
return $obj->$method($arg);
}
callInFoo("Cat", "speak", "Hello");
callInFoo("Dog", "speak", "World");
输出
meoow Hello
woof World