2016-02-24 11 views
22

Karşı karşıyayım Bu hatalar XAMPP (localhost/magento) den Magento klasörü erişirken:Önemli Hata: Yakalanmamış Hata: İşlev adı C: xampp htdocs em0126 app code core Mage Core Model Layout.php içinde olmalıdır: 555 Yığın izleme: # 0

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

cevap

74

Çözümün

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

sorun şu çizgide olduğundan bu hata düzeltmek kolay oldu:

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

Bunun yerine bu olmalıdır:

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

Büyücü \ Çekirdek \ Modeli \ Layout.php hiçbir 555 hattı \ \ kod \ çekirdeğini Uygulamaya giden aşağıda verilen linke http://www.code007.ro/making-work-magento-with-php-7-rc1/

+0

, zaman düzeni katacak .php $ out. = $ this-> getBlock ($ geri arama [0]) -> {$ geri arama [1]}(); – Elangovan

+4

Benim için çalışmış, muhtemelen bir PHP7 sayısı –

+3

Kesinlikle bir php7 sorunu +1 –

8

Git burada sizin detay çözüm bulmak ve

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

555 hattı değiştirdi

Çalışıyor. Ama bu gerçekten bir php7 ise emin değilim bir şey. Bunu aynı sunucuda aynı dosya ve yapılandırmalarla web sitemde çalıştırıyorum ve bu satırı değiştirmeden hiçbir sorun olmadan çalışıyorum.

+1

Diğer site muhtemelen PHP5 kullanıyor, PHP7 kullanmıyor :) –

6

Bu hata, 5.6'dan 7.0'a yükseltdiğimden beri bir php7 sorunudur. Ben düzeltmek için çekirdek dosya (yakında bir yama gelecek yakında) ya da aşağıdaki gibi diğer ansewers de bahşedilen gibi:

Uygulamaya git \ code \ core \ Mage \ Core \ Model \ Layout.php no 555

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

Onun PHP7

için çekirdek dosyasını düzenlemek için tavsiye edilmez nedeniyle. Bunu geçersiz kılacağız.

kopyalanması, bu dosyanın app/code/core/Mage/Core/Model/Layout.php

değiştirme kodu app/code/local/Mage/Core/Model/Layout.php dosyada app/code/local/Mage/Core/Model/Layout.php içine (hat # 555)

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

için: Sadece ince yarıyor

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