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 :: Помогите разобраться о ООП

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: проблема у новичка
Bad_Ivan
Отправлено: 27 Марта, 2012 - 18:37:21
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




Здравствуйте,
решил изучить объектно-ориентированный подход в программировании на php.
На первом же простом примере выдало ошибку:

PHP:
скопировать код в буфер обмена
  1. class MyClass
  2. {
  3.     public $prop1 = "Свойство класса ";
  4.     public function __construct()
  5.     {
  6.         echo 'Создан объект класса "', __CLASS__, '"!<br />';
  7.     }
  8.     public function __destruct()
  9.     {
  10.         echo 'Объект класса "', __CLASS__, '" удален.<br />';
  11.     }
  12.     public function getProperty()
  13.     {
  14.         return $this->prop1 . "<br />";
  15.     }
  16. }
  17. // Создаём новый объект
  18. $obj = new MyClass;
  19. // Получаем значение свойства $prop1
  20. echo $obj->getProperty();
  21. // Выводим сообщение о достижении конца файла
  22. echo "Конец файла.<br />";



Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in m:\home\localhost\www\oop\index.php on line 11 (где код public $prop1 = "Свойство класса ";)

Попробовал разные варианты, частично заработало только вот с этим:

PHP:
скопировать код в буфер обмена
  1.  class MyClass
  2. {
  3.     var $prop1 = "Свойство класса ";
  4.     function __construct()
  5.     {
  6.         echo 'Создан объект класса "', __CLASS__, '"!<br />';
  7.     }
  8.     function __destruct()
  9.     {
  10.         echo 'Объект класса "', __CLASS__, '" удален.<br />';
  11.     }
  12.     function getProperty()
  13.     {
  14.         return $this->prop1 . "<br />";
  15.     }
  16. }
  17. // Создаём новый объект
  18. $obj = new MyClass;
  19. // Получаем значение свойства $prop1
  20. echo $obj->getProperty();
  21. // Выводим сообщение о достижении конца файла
  22. echo "Конец файла.<br />";


Но __construct() и __destruct() не работают. Помогите разобраться, что я не так делаю - я начинающий программист, знаний пока маловато. Проверял и на локальном компе и на сервере хостера - результат одинаковый. Версия php на локальном 4.3.6, на хостинге 4.3.9
 
 Top
Bio man
Отправлено: 27 Марта, 2012 - 18:41:49
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Модификаторы доступа появились только в ПХП 5. Обновитесь до 5 версии.
(Добавление)
И магические методы появились тоже в ПХП 5 (те которые с __ начинаются)
 
 Top
Мелкий Супермодератор
Отправлено: 27 Марта, 2012 - 18:43:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Bad_Ivan пишет:
Версия php на локальном 4.3.6, на хостинге 4.3.9

Выкиньте обоих.
Или забудьте про ООП и своё будущее в PHP вообще.


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB