是否有可能在PHP动态定义一个类的属性值?是否有可能在PHP动态定义一个类的属性值?(Is it p

2019-05-10 11:43发布

是否可以动态地定义一个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!
    }
}

产量:

解析错误:在第6行语法错误,意外“$这一”(T_VARIABLE)

有什么不对的在上面的代码? 如果是这样,请指导我,如果它是不可能的,那么什么是做到这一点的好办法?

Answer 1:

你可以把它变成像这样的构造函数:

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

为什么你不能做到这一点,你想要的方式? 从手动引述解释它:

该声明可能包括初始化,但初始化必须是一个恒定值凹口-是,它必须能够在编译时进行评估,并不能依赖于运行时的信息进行评估。

有关OOP性能更infromation请参阅手册: http://php.net/manual/en/language.oop5.properties.php



Answer 2:

不,你不能设置这样的属性。

但是:您可以将它们在构造函数中,所以他们将可如果有人创建类的实例:

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


文章来源: Is it possible to define a class property value dynamically in PHP?
标签: php class oop