Ничего не понимаю: глюк с исполнением функции

_RVK_

Новичок
>припиши в самом начале тела функции
>global $categ, $lang;

Вы щас научите, блин :)

Holo
Не слушай про globals. Передавай через парамтры.
 

Romashov

экспериментатор
sakon
вот это называется феерический топик.
_RVK_
[Не слушай про globals. Передавай через парамтры.
поясни, пожалуйста, почему? (чувствую, что я что-то пропустил)
 

_RVK_

Новичок
Romashov

Потому что параметры для того и существуют. А global только запутывае программу. Потом черт ногу сломит пытаясь отыскать откуда у тебя в функции эта переменная и где она определяется.
 

sakon

П..и.н..ок
Хех. Другой вариант, что функция может вызываться из разных скриптов, и одно и тоже значение может иметь разные имена переменных. И опять черт ногу сломит искать...
 

Holo

Новичок
я не могу передавать $categ через параметр


$categ берется из базы, и над ней тоже проводятся некоторые действия
 

Holo

Новичок
Алелуйя

с глобалами заработала,

Спасибо всем, особенно Romashov
 

_RVK_

Новичок
Я не знаю случаякогда можно сделать через global и нельзя через параметр

-~{}~ 11.12.05 01:43:

>с глобалами заработала

еще раз предупреждаю. не используй global вообще. потом спасибо мне скажешь
 

Romashov

экспериментатор
хм.
я придерживаюсь принципа: параметры - те переменные, ради обработки которых пишется функция, а глобальными переменными указывать что-то общее, постоянное для скрипта (или всех скриптов сайта), например массив конфигурационных опций - чтобы значительно упростить вызовы функции и быть заведомо уверенным, что функция будет знать всё что нужно.
 

Navarro

Новичок
1) $categ[][] - каким боком функция его видит
2) $categ[$id][$lang] - $lang откуда взялась?
3) $result = $result.$categ[$id][$lang].','; Наверное было бы правильнее, судя по ожидаемому результату $result .= $categ[$id][$lang].','; И не мешалобы определить в начале функции $result='';

P.S. Очевидно результаты работы функции написаны от фонаря.
 

_RVK_

Новичок
Romashov
я не говорю что global вообще не нужна. она нужна, как и @ как и eval. Но пользоватся сей фичей нужно с особой остарожностью, четко отдавая себе отчет в том что ты делаешь. В данном случае global это зло. Но вот для передачи массива конфигурации вполне сгодится.

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

_RVK_

Новичок
>в чем опасность использования globals?

я и sakon написали выше
 

Holo

Новичок
В общем понятно,
будем учиться и набивать собственные шишки
 
Сверху