我有以下类:
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";这肯定有一个简单的解决方案,但我似乎找不到!
发布于 2013-01-26 01:14:58
<?php
class ClassFoo {
const MY_CONSTANT = "bar";
function __construct() {
$this->{ClassFoo::MY_CONSTANT} = "foo";
}
}
$a = new ClassFoo();
var_dump($a);发布于 2013-01-26 01:21:49
您可以在变量中使用常量,并将该变量用作属性名:
$propertyName = ClassFoo::MY_CONSTANT;
$this->$propertyName = 'foo';https://stackoverflow.com/questions/14526828
复制相似问题