Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to define a class property value dynamically in PHP?

Tags:

oop

php

class

Is it possible to define a PHP class property and assign the value dynamically using a property within the same class? Something like:

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!
    }
}

Yields:

Parse error: syntax error, unexpected '$this' (T_VARIABLE) on line 6

Is anything wrong in the above code? If so, please guide me and if it is not possible then what is a good way to accomplish this?

like image 658
Rakesh Avatar asked Dec 12 '22 00:12

Rakesh


1 Answers

You can put it into the constructor like this:

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

Why can't you do it the way you wanted? A quote from the manual explains it:

This declaration may include an initialization, but this initialization must be a constant value--that is, it must be able to be evaluated at compile time and must not depend on run-time information in order to be evaluated.

For more infromation about OOP properties see the manual: http://php.net/manual/en/language.oop5.properties.php

like image 114
Rizier123 Avatar answered May 04 '23 06:05

Rizier123