Неустранимая ошибка: Ошибка при сбое: имя функции должно быть строкой в 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
Ответы
Ответ 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. Я запускаю это на своем веб-сайте с одинаковыми файлами и конфигурациями на одном сервере, и он работает без проблем без изменения этой строки.