PHP在类中声明由另一个变量构成的变量

时间:2013-11-19 09:12:22

标签: php oop variables

我昨天在班上发现了一个奇怪的问题 - 希望你知道一些答案。考虑这样一个类:

class Person {

public $height = 90;
public $weight = $this->height * 0.8;

}

此类返回错误“Parse error:syntax error,unexpected T_VARIABLE”,似乎我无法在类中声明变量本身的变量。我是否只能将“静态”值设置为类中的变量(我的意思是静态,如直接声明为字符串或int无静态,如“static $ var ='xyz'”;为什么会发生这种情况?

谢谢, Kalreg。

2 个答案:

答案 0 :(得分:5)

目前,在PHP中定义默认properties值时,只能使用常量表达式。这意味着您不能使用任何将在运行时评估的内容。由于$this是指动态实例值,因此它显然是运行时的,并且不能用于此类定义。

答案 1 :(得分:0)

属性在类定义中不能包含动态值,但如果需要,可以在__construct方法中定义权重:

class Person {

  public $height = 90;
  public $weight;

  public function __construct()
  {
    $this->weight = $this->height * 0.8;
  }

}