Можем ли мы использовать константы вместо имени свойства при назначении значений свойствам класса? - PullRequest
3 голосов
/ 15 июля 2010

Предположим, у меня есть класс,

define('property', 'test');

class myClass
{
public $test;
}

$obj=new myClass;

Могу ли я использовать вот так

$obj->property="value";

Есть ли способ достичь этого?

Ответы [ 3 ]

3 голосов
/ 15 июля 2010

Да:

$obj->{property}="value";
1 голос
/ 15 июля 2010

Лучший способ сделать это - создать класс, подобный stdClass, такой как:

MyClass
{
    public function __set($key,$value)
    {
        $this->{$key} = $value;
    }
}

. Вы можете просто использовать

$Storage = new MyClass;

$Storage->SomeNewVar = "Some New Val";

echo $Storage->SomeNewVar;
0 голосов
/ 15 июля 2010

Да, вы можете, как предложено @Artefacto, но убедитесь, что вы используете константы, когда вы уверены, что значения свойств не изменятся !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...