2016-01-27 16 views
6

próbuję zrobić $app dostępny dla całej klasy.Expression jest niedozwolone jako domyślną wartość pola

pierwsze, uzyskać:

"ekspresja nie jest dozwolony jako domyślną wartość pola"

drugie, na linii 5, otrzymuję:

Niezidentyfikowane zmiennej $ aplikację

Jak mogę osiągnąć mój cel?

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

Dlaczego 2 'średnik;' w tej linii 'var $ app = Yii :: app() ;;' ?? –

+0

użyj Yii; przestrzeń nazw do używania aplikacji. – RK12

Odpowiedz

8

Nie można wywołać metody ustawiania wartości domyślnej dla zmiennej w PHP, nawet jeśli jest to metoda statyczna. Zmień to być ustawione w konstruktorze:

use Yii; 

class UserController extends XController  
{ 
    var $app; 

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

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

Jako marginesie, nie należy używać słowa kluczowego var w wersjach PHP> 4, patrz this question do wyjaśnienia.

+0

Doskonała odpowiedź, ale dlaczego używać 'var' ??? To jest aberracja – matiaslauriti

Powiązane problemy