PHP7环境安装magento报错Fatal error: Uncaught Error: Function name must be a string in \app\code\core\Mage\Core\Model\Layout.php:555 Stack trace: #0

magento安装在php7以上的环境是时候,安装或运行的时候有个错误:

Fatal error: Uncaught Error: Function name must be a string in C:\xampp\htdocs\magento\app\code\core\Mage\Core\Model\Layout.php:555 Stack trace: #0 C:\xampp\htdocs\magento\app\code\core\Mage\Core\Controller\Varien\Action.php(390): Mage_Core_Model_Layout->getOutput() #1 C:\xampp\htdocs\magento\app\code\core\Mage\Install\controllers\WizardController.php(120): Mage_Core_Controller_Varien_Action->renderLayout() #2 C:\xampp\htdocs\magento\app\code\core\Mage\Core\Controller\Varien\Action.php(418): Mage_Install_WizardController->beginAction() #3 C:\xampp\htdocs\magento\app\code\core\Mage\Core\Controller\Varien\Router\Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('begin') #4 C:\xampp\htdocs\magento\app\code\core\Mage\Core\Controller\Varien\Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http)) #5 > C:\xampp\htdocs\magento\app\code\core\Mage\Core\Model\App.php(354): Mage_Core_Controller_Varien_Front->dispatch() #6 C:\xampp\htdocs\magento\app\Mage.php(683): Mage_Core_Mo in C:\xampp\htdocs\magento\app\code\core\Mage\Core\Model\Layout.php on line 555

解决方式是:

本地化app\code\core\Mage\Core\Model\Layout.php文件,

找到

$out .= $this->getBlock($callback[0])->$callback[1]();

改成

$out .= $this->getBlock($callback[0])->{$callback[1]}();

清空cache和session就可以。

 

因为在PHP7里需要声明$callback这个变量。

参考连接:

stackexchange 这个页面有给出其他几根收影响的文件。

stackoverflow