我有以下课程:
class ClassFoo {
const MY_CONSTANT = "bar";
function __construct() {
$my_object = new stdClass;
// This does not work
$my_object->$ClassFoo::MY_CONSTANT = "foo";
}
}
我正在尝试创建对象$my_object
的变量,使其名称等于我定义的常量(ClassFoo::MY_CONSTANT
)。
以下不起作用:
$my_object->$ClassFoo::MY_CONSTANT = "foo";
这也不是:
$my_object->$constant("ClassFoo::MY_CONSTANT") = "foo";
必须有一个简单的解决方案,但我似乎无法找到它!
答案 0 :(得分:2)
<?php
class ClassFoo {
const MY_CONSTANT = "bar";
function __construct() {
$this->{ClassFoo::MY_CONSTANT} = "foo";
}
}
$a = new ClassFoo();
var_dump($a);
答案 1 :(得分:-1)
您可以在变量中使用常量并将该变量用作属性名称:
$propertyName = ClassFoo::MY_CONSTANT;
$this->$propertyName = 'foo';