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 :: обращение к переменной через self::

 PHP.SU

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


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

> Описание: при повторном обращение к переменной через self:: - переменная пустая
panchenko
Отправлено: 27 Июля, 2013 - 18:48:24
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Июль 2013  


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




Здраствуйте , столкнулся с проблемкой при обращении к переменной через self:: . В отладчике видно, что когда попадаю в метод self::Add(); , массив $tmp заполняется, а потом в foreach'e - self::$tmp сразу становится unitialized. Пытаюсь сделать что-то полобное http://blog[dot]kron0s[dot]com/writing-a[dot][dot][dot]nt-system-in-php , но этот код тоже неработает, проблема такая же. Хотя если просто делаю примерчики как у вас на форуме http://forum.php.su/topic.php?fo...1&topic=3653 , всё работает и даже могу менять значение переменных. Помогите пожалуйста ! Я недавно с PHP , если можно с разьяснениями, заранее благодарен !

PHP:
скопировать код в буфер обмена
  1.  
  2. class test
  3. {
  4.      public static $tmp = array();
  5.      
  6.      public static function Add()
  7.      {
  8.         $tmp[0] = function()
  9.         {
  10.             echo "func1";
  11.         };
  12.        
  13.         $tmp[1] = function()
  14.         {
  15.             echo "func2";
  16.         };
  17.      }
  18.      
  19.      public static function Show()
  20.      {
  21.         self::Add();
  22.         foreach(self::$tmp as $func)
  23.         {
  24.             $func();
  25.             echo '<br />';
  26.         }
  27.      }
  28. }
  29.  
  30. test::Show();
  31.  

(Добавление)
Да ещё забыл сказать , что использую PHP 5.3.25
 
 Top
OrmaJever Модератор
Отправлено: 27 Июля, 2013 - 19:10:17
Post Id



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


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


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




эээ, а ничё что присваивание тоже должно быть с self? иначе $tmp это локальная переменая функции Add.
PHP:
скопировать код в буфер обмена
  1. self::$tmp[0] = ...
  2. self::$tmp[1] = ...


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
panchenko
Отправлено: 27 Июля, 2013 - 21:38:38
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Июль 2013  


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




О да-а-а-а-а !!!
Благодарю Вас OrmaJever !!!
Люблю PHP и Ваш ресурс !!! огромная благодарность за оперативность !))))
 
 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