Можно ли динамически создать свойство у класса?

ilkz

Новичок
Можно ли динамически создать свойство у класса?

Можно ли динамически создать свойство у класса в каком-нибудь из его методов?..

И второй вопрос. Странный немного, но все же. Если у меня в классе много (около 20 пока что) свойств, целесообразно ли будет их вынести в отдельный класс, а потом этот конфиг-класс наследовать? Просто, мне кажется, так будет удобнее стороннему юзеру - он будет видеть только конфиг - без кода методов.
 

.des.

Поставил пиво кому надо ;-)
Просто, мне кажется, так будет удобнее стороннему юзеру - он будет видеть только конфиг - без кода методов.
Обычно поля класса располагаются до кода методов, так что совсем не нужно видеть кода методов. Использовать наследование таким образом, навевает мысли о плохом дизайне.
 

svetasmirnova

маленький монстрик
1. Да. $this->newProperty
2. Зависит от приложения. Раз кажется, что удобнее: выноси.
 

ilkz

Новичок
зы: использую PHP 5 версии.

-~{}~ 09.01.06 14:56:

Спасибо за помощь!

зы: сообщение к администраторам:
вот когда на этом форуме создаешь тему, то внизу слева есть блочок маленький, где написано что я могу делать/добавлять, а что не могу. Так вот, если я МОГУ делать какой-то пункт, то он нормально, по-русски пишет, что я "можете". А если я НЕ МОГУ создать тему, то он пишет, что я "not можете". Мне, конечно, по фигу, но не очень здорово смотрится этот "not".

-~{}~ 09.01.06 15:03:

PHP ругается на эту функцию (newProperty). Говорит, что:
Fatal error: Call to undefined method Module::newProperty() in z:\home\a.ru\www\modules\anime.php on line 29
 

ilkz

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

Как пример, если разобрать такую конструкцию:
PHP:
foreach($_GET as $var => $value)  $$var = $value;
Так вот сделать то же самое с классом не получается:
PHP:
foreach($_GET as $var => $value)  $this->$$var = $value;
Вот в чем вопрос.

-~{}~ 09.01.06 15:17:

Спасибо за ссылку с методами. Очень полезно! :)
 

.des.

Поставил пиво кому надо ;-)
$this->$var = $value; вместо $this->$$var = $value;

Только в 5 пхп будут нотайсы.
 

ilkz

Новичок
О! То, что надо! Еще раз Спасибо!
Кстати, никаких нотайсов не возникает :):
PHP:
foreach($this->parameters as $var => $value) {
	$this->$var = $value;
	echo $this->$var.'<br>';
}
 
Сверху