Недавно начал изучать php, строго не судите, на текщий момент не могу разобраться с классами, есть PHP: class classname { var $attribute; function operation($param) { $this->attribute = $param; echo $this->attribute; }} $ab = new classname();$ab->operation(45); // по идее здесь присваиваю $attribute значение 45echo $ab->attribute; // проверяю присвоилось ли оно и все работает При изменении функции внутри класса, не работает, подскажите пожалуйста PHP: class classname { var $attribute; var $attribute2; function operation($param,$hey) { $this->$hey = $param; echo $this->$hey; }} $ab = new classname();$ab->operation(45,$attribute2);echo $ab->attribute2;
1. var это отголоски php 4, нужно пользоваться модификаторами доступа: public, private, protected 2. во втором случае у вас нет $attribute2, где вы его взяли? 3. в метод operation вы передаёте $hey, и потом присваиваете вникуда... $this->$hey . У вас нет свойства $hey. Предполагаю что вы хотели сделать так. PHP: class classname { public $attribute; public $attribute2; function operation($param, $hey) { $this->attribute = $param; $this->attribute2 = $hey; }}$ab = new classname();$ab->operation(45, 123);// выводим содержимое свойства attributeecho $ab->attribute;echo '<br />';// выводим содержимое свойства attribute2echo $ab->attribute2; по хорошему и по ООП, нужно делать гетеры и сетеры, чтобы к св-вам нельзя было обращаться напрямую
А если я хочу чтобы $param принимал переменную, например $attribute или $attribute2, а $hey присваивала значения этой самой переменной?
ну так присвойте этой переменной что-нибудь. PHP: $variable = 'ололо';$ab->operation($variable, 123);
почитайте про область видимости в классах, не обязательно пхп... вот хорошие уроки по яваскрипту, там найдете свой ответ http://www.youtube.com/playlist?list=PLo6puixMwuSNxJCgadaaavKqq4-ocKPrR