这是我的引导文件:
class Bootstrap {
function __construct()
{
$url = $_GET['url'];
//удаляем слеш с конца, чтобы избежать ошибки метода
$url = rtrim($url,'/');
//делим по слешу
$url = explode('/',$url);
//print_r($url);
$file = 'controllers/' . $url[0] . '.php';
if(file_exists($file))
{
require 'controllers/' . $url[0] . '.php';
$controller = new $url[0];
}
else
{
require '/../controllers/error.php';
$error = new error();
$error->classError();
return false;
}
if
(isset($url[2])){
$controller->{$url[1]}($url[2]);
}
else
{
if(isset($url[1])){
if(method_exists($url[0],$url[1])) {
$controller->{$url[1]}();
}
else {
$error->methodError();
}
}
}
}
}
如您所见,我在这里创建了一个对象,并调用了 classError 函数:
else
{
require '/../controllers/error.php';
$error = new error();
$error->classError();
return false;
}
然后我想在另一个地方调用另一个方法:
else {
$error->methodError();
}
它说:致命错误:在第 39 行的 Z:\home\localhost\www\oop\mvc\mvc\libs\bootstrap.php 中的非对象上调用成员函数 methodError()。
当我为 methodError 方法创建另一个对象时,它可以工作。问题是,如果我已经在其下创建了一个对象,为什么还要创建另一个对象?