Affectation dynamique de la valeur d'une propriété de classe en PHP
Définir des propriétés de classe avec des valeurs constantes est l'approche standard en PHP. Cependant, dans certains scénarios, il peut être nécessaire d'attribuer des valeurs de manière dynamique.
Exemple :
Considérez le code suivant :
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; }
Ceci Le code tente d'attribuer les propriétés fullname et totalBal de manière dynamique en fonction des valeurs d'autres propriétés. Cependant, cela entraîne une erreur d'analyse en raison de l'utilisation de $this dans les propriétés au niveau de la classe.
Solution :
Pour attribuer dynamiquement des valeurs de propriété de classe, placez le code d'affectation dans le constructeur de classe. Par exemple :
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; } }
Explication :
Les propriétés de classe ne peuvent pas se voir attribuer de valeurs dynamiques lors de la déclaration. Selon le manuel de PHP, l'initialisation doit être une valeur constante évaluée au moment de la compilation. En utilisant le constructeur, les valeurs peuvent être attribuées dynamiquement lors de la création de l'objet.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!