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]   

> Без описания
mikeles
Отправлено: 05 Апреля, 2011 - 10:06:10
Post Id


Новичок


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


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




Не могу присвоить значение глобальной переменной

PHP:
скопировать код в буфер обмена
  1. $modules;
  2.  
  3.  function set()
  4. {
  5.   parents::parents_2();
  6. }              
  7. class parents{ 
  8.         function parents_2()
  9.         {
  10.                                                 global $modules;
  11.                                                 $modules = array();
  12.                                                 $modules['id'] =5;                               
  13.         }
  14.         function children()
  15.         {              
  16.                 print_r($modules);
  17.         }
  18. }
  19.            set();
  20.            parents::children();
  21.  


Должно ведь работать...((
 
 Top
3371
Отправлено: 05 Апреля, 2011 - 10:29:19
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2011  


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




mikeles

По-моему экземпляр класса сначала надо создать и через него уже обращаться к методам.

Например,
$obj = new parents();
$obj->parents_2;
$obj->children;

(Отредактировано автором: 05 Апреля, 2011 - 10:31:20)

 
 Top
garvey
Отправлено: 05 Апреля, 2011 - 10:39:32
Post Id



Частый посетитель


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


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




Вы в каком веке живете? Где область видимости, где static? И совет: не используйте глобальные переменные. Это зло.
 
 Top
mikeles
Отправлено: 05 Апреля, 2011 - 10:53:16
Post Id


Новичок


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


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




Спасибо большое за советы!Я уже разобрался и понял свою глупость!
PHP:
скопировать код в буфер обмена
  1. $modules  = array();
  2.  
  3.    function set()
  4.                 {
  5.                          $object = new parents();
  6.                          $object->parents_2();
  7.                          $object->children();
  8.                  // parents::parents_2();
  9.                 }      
  10.                        
  11. class parents{
  12.        
  13.        
  14.         function parents_2()
  15.         {
  16.                  global $modules;
  17.                 // $modules = array();
  18.                  $modules['id'] = 5;                             
  19.         }
  20.         function children()
  21.         {      
  22.         global $modules;       
  23.                 print_r($modules);
  24.         }
  25. }
  26.                 set();


А дело даже в другом:

Глобальная переменная находится в другом файле (index.php)
А этот файл я подключаю через require_once.
Как мне поменять глобальную переменную в другом файле?
 
 Top
OrmaJever Модератор
Отправлено: 05 Апреля, 2011 - 12:30:57
Post Id



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


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


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




mikeles эту переменую можно передать параметром, а глобальные переменые
garvey пишет:
Это зло.

PHP:
скопировать код в буфер обмена
  1. $modules  = array();
  2.  
  3.    function set(&$m)
  4.                 {
  5.                          $object = new parents();
  6.                          $object->parents_2($m);
  7.                          $object->children($m);
  8.                  // parents::parents_2();
  9.                 }      
  10.                        
  11. class parents{
  12.        
  13.        
  14.         function parents_2(&$m)
  15.         {
  16.                  $m['id'] = 5;                            
  17.         }
  18.         function children(&$m)
  19.         {            
  20.                 print_r($m);
  21.         }
  22. }
  23.                 set($modules);


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB