Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Опечатка в книжке или это я туплю?
приведет к неявному вызову функции __set()с передачей ей $devid в качестве значения параметра $name и 5 в качестве значения параметра $value;
Функция __get() работает аналогичным образом...
Так почему же мне не в место значения атрибута $devid выводится либо пустое место, либо фатальная ошибка?
OrmaJever
Отправлено: 17 Марта, 2012 - 22:13:42
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Во-первых это стиль php4. Прочитайте http://php.su/learnphp/phpoo/?php5
Во-вторых вы просто не присволи ей значение, в конструкторе нужно $this->devid = $param;
nkl пишет:
Делаю так: echo $device->$devid; Получаю фатальную ошибку. Хотя вот цитата из книги:
Эти книги повыкидывать надо. Для обращения к свойствам класса нужно использовать имя без знака "$", только к статическим так className::$var
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
EuGen
Отправлено: 17 Марта, 2012 - 22:16:39
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
echo'Переменной $devid было присвоено значение '.$param;
}
Во-вторых,
Обращение $this->$devid приводит к фатальной ошибке, так как $devid воспринимается как переменная (а она не существует). Обращаться нужно как $device->devid
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.