致命错误:未捕获错误:函数名称必须是C:\ xampp \ htdocs \ em0126 \ app \ code \ core \ Mage \ Core \ Model \ Layout.php中的字符串:555堆栈跟踪:#0

时间:2016-02-24 19:51:04

标签: magento phpmyadmin xampp

从XAMPP(localhost / magento)访问Magento文件夹时遇到这些错误:

  

致命错误:未捕获错误:函数名称必须是字符串   C:\ XAMPP \ htdocs中\ em0126 \应用\代码\核心\法师\核心\型号\ layout.php中:555   堆栈跟踪:#0   C:\ XAMPP \ htdocs中\ em0126 \应用\代码\核心\法师\核心\控制器\瓦瑞恩\ action.php的(390):   Mage_Core_Model_Layout-> getOutput()#1   C:\ XAMPP \ htdocs中\ em0126 \应用\代码\核心\法师\安装\控制器\ WizardController.php(120):   Mage_Core_Controller_Varien_Action-> renderLayout()#2   C:\ XAMPP \ htdocs中\ em0126 \应用\代码\核心\法师\核心\控制器\瓦瑞恩\ action.php的(418):   Mage_Install_WizardController-> beginAction()#3   C:\ XAMPP \ htdocs中\ em0126 \应用\代码\核心\法师\核心\控制器\瓦瑞恩\路由器\ Standard.php(250):   Mage_Core_Controller_Varien_Action-> dispatch('begin')#4   C:\ XAMPP \ htdocs中\ em0126 \应用\代码\核心\法师\核心\控制器\瓦瑞恩\ 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   第555行

5 个答案:

答案 0 :(得分:92)

您的解决方案

  

致命错误:未捕获错误:函数名称必须是...中的字符串   app \ code \ core \ Mage \ Core \ Model \ Layout.php:555 ...

此错误很容易解决,因为问题出现在以下行中:

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

相反它应该是:

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

在下面给出的链接中找到您的详细解决方案 http://www.code007.ro/making-work-magento-with-php-7-rc1/

答案 1 :(得分:21)

由于PHP7

不建议编辑核心文件。我们会覆盖它。

将此文件app/code/core/Mage/Core/Model/Layout.php复制到app/code/local/Mage/Core/Model/Layout.php

更改app/code/local/Mage/Core/Model/Layout.php文件中的代码(第555行)

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

要:

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

答案 2 :(得分:15)

将第555行更改为:

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

有效。但有一件事我不确定这是不是真的是一个php7。我在我的网站上使用相同的文件和配置在同一台服务器上运行它,并且在没有更改该行的情况下没有任何问题。

答案 3 :(得分:10)

转到app \ code \ core \ Mage \ Core \ Model \ Layout.php第555行和

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

答案 4 :(得分:7)

这是一个php7问题,因为当我从5.6升级到7.0时,我遇到了这个错误。修复它我编辑的核心文件(希望补丁即将推出)或者像之前的其他内容中提到的那样或者像下面那样:

转到app \ code \ core \ Mage \ Core \ Model \ Layout.php第555行

join()