Dynamische Klasseneigenschaftswertzuweisung in PHP
Das Definieren von Klasseneigenschaften mit konstanten Werten ist der Standardansatz in PHP. In bestimmten Szenarien kann es jedoch erforderlich sein, Werte dynamisch zuzuweisen.
Beispiel:
Bedenken Sie den folgenden Code:
class user { public $firstname = "jing"; public $lastname = "ping"; public $balance = 10; public $newCredit = 5; public $fullname = $this->firstname.' '.$this->lastname; public $totalBal = $this->balance+$this->newCredit; }
Dies Der Code versucht, die Eigenschaften „fullname“ und „totalBal“ dynamisch basierend auf den Werten anderer Eigenschaften zuzuweisen. Aufgrund der Verwendung von $this innerhalb von Eigenschaften auf Klassenebene führt dies jedoch zu einem Analysefehler.
Lösung:
Um Klasseneigenschaftswerte dynamisch zuzuweisen, platzieren Sie die Zuweisungscode innerhalb des Klassenkonstruktors. Zum Beispiel:
class user { private $firstname; private $lastname; private $balance; private $newCredit; private $fullname; private $totalBal; public function __construct() { $this->firstname = "jing"; $this->lastname = "ping"; $this->balance = 10; $this->newCredit = 5; $this->fullname = $this->firstname.' '.$this->lastname; $this->totalBal = $this->balance+$this->newCredit; } }
Erklärung:
Klasseneigenschaften können während der Deklaration keine dynamischen Werte zugewiesen werden. Laut PHP-Handbuch muss die Initialisierung ein konstanter Wert sein, der zur Kompilierungszeit ausgewertet wird. Mithilfe des Konstruktors können die Werte bei der Objekterstellung dynamisch zugewiesen werden.
Das obige ist der detaillierte Inhalt vonWie kann ich Klasseneigenschaften in PHP dynamisch Werte zuweisen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!