Как динамически присвоить значение свойству класса в PHP? - PullRequest
0 голосов
/ 11 июня 2010

Я хотел бы динамически назначать значение в свойстве класса (то есть ссылаться на него с помощью переменной).

#Something like: 
setPropValue($obj, $propName, $value);

Ответы [ 3 ]

4 голосов
/ 11 июня 2010
$obj->$propName = $value;
2 голосов
/ 11 июня 2010

Если вы хотите сделать это для статических членов , вы можете использовать переменные переменные:

class Foo
{
    public static $foo = 'bar';
}

// regular way to get the public static class member
echo Foo::$foo; // bar

// assigning member name to variable
$varvar = 'foo';
// calling it as a variable variable
echo Foo::$$varvar; // bar

// same for changing it
Foo::$$varvar = 'foo';
echo Foo::$$varvar; // foo
1 голос
/ 11 июня 2010

Как это?

$myClass = new stdClass();
$myProp = 'foo';
$myClass->$myProp = 'bar';
echo $myClass->foo; // bar
echo $myClass->$myProp; // bar
...