2010-12-02 1 views
0

Gibt es einen Unterschied zwischen diesen Methoden zum Deklarieren und Festlegen einer öffentlichen Klassenvariablen? Gibt es einen Grund, warum Sie sich für eines entscheiden würden?Die beste Methode zum Definieren einer öffentlichen Klassenvariablen in PHP

Methode 1

class example { 

    public $myArray; 

    function __construct() { 
    $this->myArray = array(1, 2, 3); 
    } 

    function showVar() { 
    print_r($this->myArray); 
    } 

} 

Methode 2

class example { 

    public $myArray = array(1, 2, 3); 

    function showVar() { 
    print_r($this->myArray); 
    } 

} 

Antwort

2

Im ersten Fall wird der Code jedes Mal, wenn Sie neue Klasseninstanz erstellen ausgewertet werden.

Im zweiten Fall - es wird nur einmal ausgewertet, wenn die Klasse geparst wurde.

Das ist alles.

+0

Ich nehme an, Sie würden immer nur eine öffentliche Klassenvariable mit dem Konstruktor setzen wollen, wenn die Variable zuerst berechnet werden müsste? Und im Fall meines Beispiels, in dem sich das Array niemals ändert, wäre Methode 2 die richtige? – Chris

+0

@Chris: Manchmal ist es unmöglich, das Mitglied statisch zu berechnen. Zum Beispiel, wenn Sie dort aktuelle Zeit setzen müssen. In diesem Fall müssen Sie Daten im Konstruktor initialisieren. – zerkms

Verwandte Themen