Как динамически создать новое свойствоPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как динамически создать новое свойство

Сообщение Anonymous »

Как я могу создать свойство из данного аргумента внутри метода объекта? < /p>

Код: Выделить всё

class Foo{

public function createProperty($var_name, $val){
// here how can I create a property named "$var_name"
// that takes $val as value?

}

}
< /code>

И я хочу иметь возможность получить доступ к свойству, например: < /p>

$object = new Foo();
$object->createProperty('hello', 'Hiiiiiiiiiiiiiiii');

echo $object->hello;
Также возможно ли, что я могу сделать собственность публичной/защищенной/частной? Я знаю, что в этом случае это должно быть общедоступным, но я могу добавить некоторые методы Magik, чтобы получить защищенные свойства и прочее :) < /p>


Я думаю, что нашел решение: < /p>

protected $user_properties = array();

public function createProperty($var_name, $val){
$this->user_properties[$var_name] = $val;

}

public function __get($name){
if(isset($this->user_properties[$name])
return $this->user_properties[$name];

}
< /code>

Как вы думаете, это хорошая идея? < /p>

Подробнее здесь: https://stackoverflow.com/questions/870 ... ynamically
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»