2016-02-24 15 views
22

I am facing questi errori durante l'accesso cartella Magento da XAMPP (localhost/Magento):Errore irreversibile: Errore non rilevato: il nome funzione deve essere una stringa in C: xampp htdocs em0126 app code core Mage Core Model Layout.php: 555 Traccia stack: # 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

risposta

74

la soluzione

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

Questo errore è stato facile da risolvere perché il problema era nella seguente riga:

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

Invece dovrebbe essere:

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

trovare la soluzione dettaglio qui di seguito determinato link http://www.code007.ro/making-work-magento-with-php-7-rc1/

+0

E 's lavorare solo bene, quando si aggiungerà il layout .php $ out. = $ this-> getBlock ($ callback [0]) -> {$ callback [1]}(); – Elangovan

+4

Ha funzionato per me, probabilmente un problema PHP7 –

+3

Sicuramente un problema php7 +1 –

8

Vai a App \ code \ Core \ Mage \ Core \ modello \ layout.php linea n 555 e

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

Modificato la linea 555 a:

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

Funziona. Ma una cosa di cui non sono sicuro è se si tratta di una php7. Sto eseguendo questo sul mio sito web con gli stessi file e configurazioni sullo stesso server e funziona senza problemi senza modificare quella linea.

+1

L'altro sito probabilmente utilizza PHP5 e non PHP7 :) –

6

si tratta di un problema di php7 da quando ho eseguito l'aggiornamento da 5.6 a 7.0 ho ricevuto questo errore. per correggerlo ho modificato il file core (speriamo che una patch arrivi presto) o come menzionato in altre ansewer prima o come sotto:

Vai a app \ code \ core \ Mage \ Core \ Model \ Layout.php linea no 555

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

la sua causa di PHP7

non è raccomandato per modificare il file core. Lo ignoreremo.

Copia questo file app/code/core/Mage/Core/Model/Layout.php in app/code/local/Mage/Core/Model/Layout.php

Cambia codice a app/code/local/Mage/Core/Model/Layout.php di file (linea # 555)

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

A:

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