我遇到了从未有过的奇怪错误。
致命错误:不在对象上下文中时使用$ this
Chat.php(类)
<?php class Chat { private $_data = array(), $_db; public function __construct($row){ $this->_db = DB::getInstance(); $this->_data = $row; } public function send($fields = array()) { $this->_db->insert('messages', $fields); <------- ERROR }
当我这样调用send函数时:
Chat::send(array( 'message' => Input::get('message'), 'author' => $user->data()->username, 'ts' => date('Y-m-d H:i:s') ));
错误弹出。
您需要使用创建一个对象new,以便有一个$this对象:
new
$this
$chat = new Chat($row); $chat->Send(array( 'message' => Input::get('message'), 'author' => $user->data()->username, 'ts' => date('Y-m-d H:i:s') ));
在调用构造函数之前,您不会创建数据库连接,而在new使用构造函数时会发生这种情况。