我有我的自定義類的問題位於:ZF2使用PHP5 VS PHP7
module/SomeModule/src/SomeModule/Model/someClass.php
我得到一個數據庫適配器像這樣使用ServiceLocator
(完全是in this Learning Zend Framework 2 tutorial):
public function getAdapter()
{
if (!$this->adapter) {
$sm = $this->getServiceLocator();
$this->adapter = $sm->get('Zend\Db\Adapter\Adapter');
}
return $this->adapter;
}
在PHP 5工作得很好,但在PHP 7中並沒有。看來這個類是在PHP 7不再ServiceLocatorAware
並給出了此錯誤:
Fatal error: Uncaught Error: Using $this when not in object context in C:\Zend9\Apache24\htdocs\Project\module\Account\src\Account\Model\User.php:316
Stack trace:
#0 C:\Zend9\Apache24\htdocs\Project\module\Account\src\Account\Model\User.php(271): Account\Model\User::getAdapter()
#1 C:\Zend9\Apache24\htdocs\Project\module\Account\src\Account\Controller\LoginController.php(40): Account\Model\User::userLogin('xxx', 'xxx')
#2 C:\Zend9\ZendServer\data\libraries\Zend_Framework_2\2.4.9\library\Zend\Mvc\Controller\AbstractActionController.php(82): Account\Controller\LoginController->indexAction()
#3 [internal function]: Zend\Mvc\Controller\AbstractActionController->onDispatch(Object(Zend\Mvc\MvcEvent))
#4 C:\Zend9\ZendServer\data\libraries\Zend_Framework_2\2.4.9\library\Zend\EventManager\EventManager.php(444): call_user_func(Array, Object(Zend\Mvc\MvcEvent))
#5 C:\Zend9\ZendServer\data\libraries\Zend_Framework_2\2.4.9\library\Zend\EventManager\EventManager.php(205): Zend\EventManager\EventManager->trigg
in C:\Zend9\Apache24\htdocs\Project\module\Account\src\Account\Model\User.php on line 316
誰能告訴我,爲什麼有PHP 5和PHP 7,以及如何解決它之間的差異?
什麼時候開始通過檢查錯誤日誌 – RiggsFolly
你PHP7跳 – RiggsFolly
PHP 5.6之前,使用了什麼版本的PHP5中,錯誤日誌顯示: \t使用$這個時候不是在對象上下文 – user3130983