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
Форумы портала PHP.SU :: Версия для печати :: Не работает метод
Форумы портала PHP.SU » PHP » Программирование на PHP » Не работает метод

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

1. mikeles - 05 Апреля, 2011 - 10:06:10 - перейти к сообщению
Не могу присвоить значение глобальной переменной

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.  


Должно ведь работать...((
2. 3371 - 05 Апреля, 2011 - 10:29:19 - перейти к сообщению
mikeles

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

Например,
$obj = new parents();
$obj->parents_2;
$obj->children;
3. garvey - 05 Апреля, 2011 - 10:39:32 - перейти к сообщению
Вы в каком веке живете? Где область видимости, где static? И совет: не используйте глобальные переменные. Это зло.
4. mikeles - 05 Апреля, 2011 - 10:53:16 - перейти к сообщению
Спасибо большое за советы!Я уже разобрался и понял свою глупость!
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.
Как мне поменять глобальную переменную в другом файле?
5. OrmaJever - 05 Апреля, 2011 - 12:30:57 - перейти к сообщению
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);

 

Powered by ExBB FM 1.0 RC1