Можно ли динамически определять значение свойства класса в PHP?

Можно ли определить свойство класса PHP и присвоить значение динамически с использованием свойства внутри одного класса? Что-то вроде:

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; function login() { //some method goes here! } } 

Урожайность:

Ошибка анализа: синтаксическая ошибка, неожиданный «$ this» (T_VARIABLE) в строке 6

Что-то не так в приведенном выше коде? Если да, пожалуйста, помогите мне, и если это невозможно, то что это хороший способ сделать это?

Related of "Можно ли динамически определять значение свойства класса в PHP?"

Вы можете поместить его в конструктор следующим образом:

 public function __construct() { $this->fullname = $this->firstname.' '.$this->lastname; $this->totalBal = $this->balance+$this->newCredit; } 

Почему ты не можешь так поступать так, как ты хотел?

Цитата из руководства объясняет это:

Это объявление может включать в себя инициализацию, но эта инициализация должна быть постоянным значением – то есть она должна быть способна быть оценена во время компиляции и не должна зависеть от информации о времени выполнения для оценки.

Для получения дополнительной информации о свойствах ООП см. Руководство: http://php.net/manual/en/language.oop5.properties.php

Нет, вы не можете установить такие свойства.

Однако: вы можете установить их в конструкторе, чтобы они были доступны, если кто-то создает экземпляр класса:

 public function __construct() { $this->fullname = $this->firstname . ' ' . $this->lastname; }