2

我有以下课程:

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";

必须有一个简单的解决方案,但我似乎找不到它!

4

2 回答 2

2
<?php 
class ClassFoo {
    const MY_CONSTANT = "bar";

    function __construct() {
        $this->{ClassFoo::MY_CONSTANT} = "foo";
    }
}

$a = new ClassFoo();
var_dump($a);
于 2013-01-25T17:14:58.307 回答
-1

您可以在变量中使用常量并将该变量用作属性名称:

$propertyName = ClassFoo::MY_CONSTANT;
$this->$propertyName = 'foo';
于 2013-01-25T17:21:49.493 回答