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 に答える