В чем вопрос? Ведь я $this использовал в классе и функция существует PHP: <?php class Route { function start() { $controller = 'main'; $action = 'index'; $route = explode('/', $_SERVER['REQUEST_URI']); array_shift($route); if(empty($route[0])) header('Location: '.ADDRESS.'am'); if(preg_match('/^(en|ru|am)$/', $route[0])) define('LANG', $route[0]); else $this->errorPage(); if(!empty($route[1])) $controller = $route[1]; if(!empty($route[2])) $action = $route[2]; if(file_exists(CONTROLLER.$controller.'.php')) { require(CONTROLLER.$controller.'.php'); if(file_exists(MODEL.$controller.'.php')) require(MODEL.$controller.'.php'); $controller = 'controller_'.$controller; $controller = new $controller; if(method_exists($controller, $action)) $controller->$action(); else $this->errorPage(); } else $this->errorPage(); } function errorPage() { header('HTTP/1.1 404 Not Found'); header('Location: '.ADDRESS.LANG.'/404'); } } ?>
Исходя из того какое условие не выполняется, номер строки бывает разным. но всегда код в этом строке такой: PHP: else $this->errorPage();
@Hayk Avetisyan сдаётся мне что вы вызываете метод start() из класса через paamayim nekudotayim, а не как метод объекта.
Вася хотел сказать "похоже вы вызываете как ::start() а не как ->start()", --- Добавлено --- И таки строку надо находить в сообщении об ошибке, а не исходя из каких-то своих умозаключений.