我对这行代码有疑问;
当我去 localhost / 网站工作时!
当我去 localhost / welcome 网站不能正常工作!转到echo ==> 字符串 , 失败
当我去 localhost / welcome / other 网站工作时,但错误下降了!
严格标准:call_user_func_array()期望参数1是有效的回调,非线性方法welcome :: king()不应该在line =>的bootstrap.php中静态调用call_user_func_array([$ this-> _controller,$ this-> _methode],$ this-> _params);
bootstrap.php中的代码
if(empty($url))
{
$name_controller = ROOT;
$this->_requireController($name_controller);
$contro = new $name_controller();
$contro->$name_controller();
}
else
{
$this->_controller = $url[0];
if(isset($url[1]))
{
$this->_methode = $url[1];
unset($url[0]);
unset($url[1]);
$this->_params = $url ? array_values($url) : [];
echo "222";
}
else
{
echo "string";
}
$this->_requireController($this->_controller);
$contro = new $this->_controller();
if(method_exists($contro, $this->_methode))
{
call_user_func_array([$this->_controller, $this->_methode], $this->_params);
}
else
{
echo 'FAIL';
}
}
}
控制器/的welcome.php
class welcome extends Controller {
function __construct()
{
parent::__construct();
}
public function welcome()
{
echo "work!";
}
public function other()
{
echo "Other Work";
}
public function other_arg($arg)
{
echo "Other Work with ".$arg;
}
}
答案 0 :(得分:0)
以下是 loclahost / welcome / other 上的错误:
的 222 强>
严格标准:call_user_func_array()期望参数1是有效的回调,非线性方法welcome :: test()不应在第177行的C:\ xampp-server \ htdocs \ bootstrap.php中静态调用
其他工作
答案 1 :(得分:0)
您可以将其设置为静态,并将其称为非静态函数,如下所示:
static::run();
或者你试过这个
$this->-controller->$this->_methode($args);
而不是
call_user_func_array([$this->_controller, $this->_methode], $this->_params);