我有我的自定义类的问题位于: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