Проблема с глобальными переменными

Discussion in 'Программирование' started by vezunchik, Nov 18, 2008.

  1. Offline

    vezunchik Недавно здесь

    Joined:
    Nov 18, 2008
    Messages:
    2
    Likes Received:
    0
    Помогите, вот пытаюсь написать свой компонент, столкнулся с такой проблемой.
    Вот кусок кода моего компонента, в функции объявляю переменные $param и $test как глобальные, т.е. в результате функция SectList должна вывести значения этих переменных. Но почему то когда компонент запускается из Joomla, то эти переменные становятся пустыми, а если скрипт запускаю напрямую в обход Joomla, то скрипт нормально выводит значения переменных.
    В чем тут может быть дело? помогите...
    Код (PHP):
    1. $param = "index.php?option=com_catalogg";
    2.  
    3. $test = "test";
    4.  
    5. SectList();
    6.  
    7. function SectList()
    8. {
    9. global $param, $test;
    10.  
    11. echo $param.$test;
    12.  
    13. }


    Если прописать global $param, $test; вне функции, то функция начинает видеть значения переменных $param и $test.
     
  2.  
  3. sectus
    Offline

    sectus Недавно здесь => Cпециалист <=

    Joined:
    Apr 19, 2006
    Messages:
    1,210
    Likes Received:
    46
    Gender:
    Male
    Код (PHP):
    1. global $param, $test;
    2.  
    3. $param = "index.php?option=com_catalogg";
    4.  
    5. $test = "test";
    6.  
    7. SectList();
    8.  
    9. function SectList()
    10.  
    11. {
    12.  
    13. global $param, $test;
    14.  
    15. echo $param.$test;
    16.  
    17. }
     
  4. Offline

    vezunchik Недавно здесь

    Joined:
    Nov 18, 2008
    Messages:
    2
    Likes Received:
    0
    Ну то что надо прописать global и вне самой функции я уже догадался. Но почему так происходит? Ведь обычно в скрипте если хотел в функции использовать глобальную переменную, то писал только в тексте самой функции global. Не понимаю... :'(
     
  5. sectus
    Offline

    sectus Недавно здесь => Cпециалист <=

    Joined:
    Apr 19, 2006
    Messages:
    1,210
    Likes Received:
    46
    Gender:
    Male
    Потому что вызванный оде не самый "верхний", он тоже часть функции
     

Share This Page

Loading...