[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Массив не доступен внутри функции
ilyazh
Здравствуйте. Я столкнулся с некоторой проблемой. У меня есть массив, который объявляется и "наполняется" до определения функции. Затем, естественно, идёт определение новой функции, которая должна выполнять некоторые действия с элементами этого массива и возвращать результат, но этого не происходит. Я сделал проверку и пришёл к выводу, что массив не доступен внутри моей функции.

Что можно сделать, чтобы массив был доступен внутри функции? "Наполнить" и объявить массив внутри функции я не могу т.к. информация в массив попадает из БД, поэтому если я сделаю его наполнение внутри функции, то каждый раз, когда будет вызываться функция будет происходить запрос к БД, а мне достаточно всего-лишь одного, ибо данные в БД не изменятся за время обработки скрипта.



Спустя 48 минут, 10 секунд (14.03.2010 - 23:10) sergeiss написал(а):
Передай в качестве параметра. Или сделай его глобальным... В чем проблемы-то?

Спустя 13 минут, 29 секунд (14.03.2010 - 23:23) Nikitian написал(а):
Супер-глобальный массив $GLOBALS таки доступен в функциях, как $_POST,$_GET,COOKIE; без костыля global$GLOBALS;
Можно через него доступ к необходимому массиву получить.

Спустя 12 часов, 41 минута, 7 секунд (15.03.2010 - 12:04) qpayct написал(а):
насколько я понимаю пхп с пятого релиза посылая массив в функции посылается только как её ну эта хрень &$link короче. разве так не проще?

Спустя 1 час, 39 минут, 21 секунда (15.03.2010 - 13:44) Nikitian написал(а):
Цитата (qpayct @ 15.03.2010 - 09:04)
насколько я понимаю пхп с пятого релиза посылая массив в функции посылается только как её ну эта хрень &$link короче. разве так не проще?

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

Спустя 17 минут, 25 секунд (15.03.2010 - 14:01) AHDPEu написал(а):
Если это только для отладки, можно тупо var_dump'ом дебажить.
А вообще global в помощь

Спустя 57 минут, 39 секунд (15.03.2010 - 14:59) ilyazh написал(а):
Спасибо, помогло.

Спустя 14 минут, 50 секунд (15.03.2010 - 15:14) qpayct написал(а):
Nikitian
сорри если не по сабжу просто интересно да и тему для этого открывать излишество по моему.
я про то что с ПХП5 можно уже не дописывать & ибо при передаче переменных функциям и т.п. шлёца ссылка, если я всё правильно понял.

Спустя 32 минуты, 10 секунд (15.03.2010 - 15:46) Nikitian написал(а):
Цитата (qpayct @ 15.03.2010 - 12:14)
Nikitian
сорри если не по сабжу просто интересно да и тему для этого открывать излишество по моему.
я про то что с ПХП5 можно уже не дописывать & ибо при передаче переменных функциям и т.п. шлёца ссылка, если я всё правильно понял.

Передача переменной по ссылке предполагает не толкьо передачу данных переменной, но и приём. Т.е. вы передали в функцию переменную, в функции она изменилась ради каких-то внутренних задач и изменилась эта же переменная во вне? это бред, если так происходит по дефолту. Да и нет такого.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.