私のクライアントのウェブサイトに何か奇妙なエラーがあります。誰かが彼のために作ったコードです。エラーメッセージは、$this
がオブジェクトコンテキストではないが、Class
が拡張されていると言っています(App
から)。
助けてください。
エラー
Fatal error: Using $this when not in object context in contactController.php on line 6
contactController.php
class contactController extends App{
public function index(){
$this->view('content'); //error mmessage is pointing here
}
}
app.php
class App{
public $controller;
public $method;
public $params = [];
public function view($file){
include(site_path() . '/views/' . $file . '.php');
}
public function model($file){
require_once(site_path() . '/models/' . $file . '.php');
}
public function engine(){
global $core_current_ControllerMethod, $core_current_controller, $core_current_method;
//Get the current controller and method from a helper function
$get_wc_cm = get_wc_cm();
//Assign it to the global variable
$core_current_ControllerView = $get_wc_cm;
//Seperate the controller and method
$cm = explode('@', $get_wc_cm);
$controller = !empty($cm[0])? $cm[0]: null; // This is the controller
$method = !empty($cm[1])? $cm[1]: null; // This is the method
//Assign it to the global varaible
$core_current_controller = $controller;
$core_current_method = $method;
//Assign it to the class variable
$this->controller = $controller;
$this->method = $method;
$ControllerFile = site_path(). '/controllers/' . $this->controller . '.php';
if(file_exists($ControllerFile)){
require_once($ControllerFile);
new $this->controller;
$callback = is_callable(array($this->controller, $this->method), false);
if($callback){
call_user_func_array([$this->controller, $this->method], [$this->params]);
}
}
}
}
$app = (new App)->engine();
が、それは方法がそのコンストラクタから呼び出されていることだろうか? – arkascha
TBH、卵を産む前にコードベース全体を火で浄化する必要があります –
@Martinそれは重複していません。私の質問はあなたが参考にしている答えとは異なっています。 –