Fatal error: Uncaught Error: Function name must be a string in C:\xampp\htdocs\em0126\app\code\core\Mage\Core\Model\Layout.php:555 Stack trace: #0

◇◆丶佛笑我妖孽 提交于 2019-12-20 08:37:45

问题


I am facing these errors while accessing Magento folder from XAMPP (localhost/magento):

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


回答1:


Your solution

Fatal error: Uncaught Error: Function name must be a string in ... app\code\core\Mage\Core\Model\Layout.php:555 ...

This error was easy to fix because the problem was in the following line:

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

Instead it should be:

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

find your detail solution here on below given link http://www.code007.ro/making-work-magento-with-php-7-rc1/




回答2:


Its due to PHP7

It's not recommended to edit the core file. We will override it.

Copy this file app/code/core/Mage/Core/Model/Layout.php into app/code/local/Mage/Core/Model/Layout.php

Change code in app/code/local/Mage/Core/Model/Layout.php file (line # 555)

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

To:

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



回答3:


Changed the line 555 to:

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

It works. But one thing I'm not sure of if this is really a php7. I'm running this on my website with same files and configurations on the same server and it's working with no issues without changing that line.




回答4:


Go to app\code\core\Mage\Core\Model\Layout.php line no 555 and

 change $callback[1] to {$callback[1]}



回答5:


it is a php7 issue since when i upgraded from 5.6 to 7.0 i got this error. to fixe it i edited core file (hope a patch will come soon) either like mentionned in other ansewers before or like below:

Go to app\code\core\Mage\Core\Model\Layout.php line no 555

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


来源:https://stackoverflow.com/questions/35611696/fatal-error-uncaught-error-function-name-must-be-a-string-in-c-xampp-htdocs-e

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!