2016-01-27 6 views
6

Sto cercando di rendere disponibile $app per l'intera classe.Espressione non consentita come valore predefinito di campo

In primo luogo, ottengo:

"L'espressione non è consentito come valore di campo predefinito"

In secondo luogo, sulla linea 5, ottengo:

non identificato $ app variabile

Come posso raggiungere il mio obiettivo?

class UserController extends XController 
{ 
    var $app = Yii::app();; 
    public function init() 
    { 
     $test = $app; 
+1

Perché 2 'punto e virgola;' in questa riga 'var $ app = Yii :: app() ;;' ?? –

+0

usa Yii; spazio dei nomi per l'utilizzo di app. – RK12

risposta

8

Non è possibile chiamare un metodo per impostare un valore predefinito per una variabile in PHP, anche se si tratta di un metodo statico. Modificarlo da impostare nel costruttore:

use Yii; 

class UserController extends XController  
{ 
    var $app; 

    function __construct() { 
     $this->app = = Yii::app(); 
    } 

    public function init()  
    { 
     $test = $this->app; 
    } 
} 

Come sidenote, non si dovrebbe usare la parola chiave var nelle versioni di PHP> 4, vedere this question per la spiegazione.

+0

Risposta eccellente, ma perché usare 'var' ??? Questa è un'aberrazione – matiaslauriti