我有以下代码:
<?php
class myclass {
public $var;
public $foo = $this->var;
}
// ...etc
当我执行此操作时,出现以下错误:
( ! ) 致命错误:常量表达式在第 4 行的 E:\public_html\index.php 中包含无效操作
我怎样才能把这个变量没有课外的?(我的意思是,我不想像下面这样定义它):
$myclass = new myclass();
$myclass->foo = $myclass->var;
类变量只能用常量值定义。
要进行动态分配,您需要在构造函数中进行:
class myclass {
public $var = "Hey there";
public $foo;
public function __construct()
{
$this->foo = $this->var;
}
}
一旦你创建了这个类的一个实例,$foo
就会有一个“Hey there”的值。
从文档:
类成员变量称为“属性”。您可能还会看到使用其他术语(例如“属性”或“字段”)来引用它们,但出于此引用的目的,我们将使用“属性”。它们是通过使用关键字 public、protected 或 private 之一来定义的,后跟一个普通的变量声明。这个声明可能包括一个初始化,但这个初始化必须是一个常量值——也就是说,它必须能够在编译时被评估,并且必须不依赖于运行时信息才能被评估。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句