Подтвердить что ты не робот

Неустранимая ошибка: Ошибка при сбое: имя функции должно быть строкой в ​​C:\xampp\htdocs\em0126\app\code\core\Mage\Core\Model\Layout.php: 555 Трассировка стека: # 0

Я сталкиваюсь с этими ошибками при доступе к папке Magento из XAMPP (localhost/magento):

Неустранимая ошибка: Ошибка при сбое: имя функции должно быть строкой в C:\XAMPP\HTDOCS\em0126\приложение\код\ядро ​​\ Mage\ядра\Model\layout.php: 555 Трассировка стека: # 0 C:\XAMPP\HTDOCS\em0126\приложение\код\ядро ​​\ Mage\Ядро\Controller\Varien\action.php(390): Mage_Core_Model_Layout- > getOutput() # 1 C:\XAMPP\HTDOCS\em0126\приложение\\ код ядра\Mage\Install\Контроллеры\WizardController.php(120): Mage_Core_Controller_Varien_Action- > renderLayout() # 2 C:\XAMPP\HTDOCS\em0126\приложение\код\ядро ​​\ Mage\Ядро\Controller\Varien\action.php(418): Mage_Install_WizardController- > beginAction() # 3 C:\XAMPP\HTDOCS\em0126\приложение\код\ядро ​​\ Mage\Ядро\Controller\Varien\маршрутизатор\Standard.php(250): Mage_Core_Controller_Varien_Action- > отправка ('begin') # 4 C:\XAMPP\HTDOCS\em0126\приложение\код\ядро ​​\ Маг\Ядро\контроллер\Varien\Front.php(172): Mage_Core_Controller_Varien_Router_Standard- > (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 в C:\xampp\htdocs\em0126\app\code\core\Mage\Core\Model\Layout.php on строка 555

4b9b3361

Ответ 1

Ваше решение

Неустранимая ошибка: ошибка с нечистотой: имя функции должно быть строкой в ​​... 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/

Ответ 2

Перейдите в приложение \code\core\Mage\Core\Model\Layout.php строка № 555 и

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

Ответ 3

это проблема php7 с тех пор, как я обновился с 5.6 до 7.0, я получил эту ошибку. Чтобы исправить это, я редактировал файл ядра (надеюсь, что патч придет в ближайшее время) либо как упоминается в других ansewers раньше или как ниже:

Перейдите в приложение \code\core\Mage\Core\Model\Layout.php line no 555

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

Ответ 4

Из-за 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]();

To:

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

Ответ 5

Изменена строка 555:

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

Это работает. Но я не уверен, что это действительно php7. Я запускаю это на своем веб-сайте с одинаковыми файлами и конфигурациями на одном сервере, и он работает без проблем без изменения этой строки.