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 :: Singleton

 PHP.SU

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


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

> Без описания
El_Coyot
Отправлено: 21 Февраля, 2012 - 17:21:48
Post Id


Новичок


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


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




Есть вот такой код.
По идее после первого обращения к скрипту он должен в переменную property записать временную метку, а при следующих обращениях - выдавать значение полученное в первый раз.
Где я ошибаюсь?

PHP:
скопировать код в буфер обмена
  1. class myClass{
  2. private static $_instance;
  3. private static $_property;
  4. private function __construct(){
  5. self::$_property = time() ;
  6. }
  7. public static function getInstance()
  8. {
  9. if(self::$_instance === null)
  10. {
  11. self::$_instance = new self();
  12. }
  13. return self::$_instance;
  14. }
  15. public function getProperty(){
  16. return self::$_property;
  17. }
  18. }
  19. myClass::getInstance();
  20. echo myClass::getProperty();


Отредактировано модератором: OrmaJever, 21 Февраля, 2012 - 17:26:01
 
 Top
OrmaJever Модератор
Отправлено: 21 Февраля, 2012 - 17:27:33
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




Каждое новое обращение к скритпу, это новый обьект, и новое значение. Для этого нужны сесии.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
DelphinPRO
Отправлено: 21 Февраля, 2012 - 19:04:06
Post Id



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


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


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




вы ошибаетесь в понимании принципов работы php.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Okula
Отправлено: 21 Февраля, 2012 - 19:23:19
Post Id



Участник


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


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




El_Coyot, для того чтобы понять как работает этот шаблон попробуй протестировать такой пример:
PHP:
скопировать код в буфер обмена
  1. class myClass {
  2.  
  3.     private static $_instance;
  4.     private static $_property;
  5.  
  6.     private function __construct() {
  7.         self::$_property = time();
  8.     }
  9.  
  10.     public static function getInstance() {
  11.         if(self::$_instance === null) {
  12.             self::$_instance = new self();
  13.         }
  14.         return self::$_instance;
  15.     }
  16.    
  17.     public function getProperty() {
  18.         return self::$_property;
  19.     }
  20.  
  21. }
  22.  
  23. myClass::getInstance();
  24. echo myClass::getProperty();
  25. sleep(5);
  26. myClass::getInstance();
  27. echo '<br>'.myClass::getProperty();

Думаю после этого сразу отпадут все вопросы Улыбка
 
 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