|
| |
|
|
| |
для: ZuArt
(13.03.2007 в 13:32)
| | | спасибо | |
| |
|
|
| |
|
|
| |
для: Trianon
(13.03.2007 в 12:50)
| | | спасибо | |
| |
|
|
| |
|
|
| |
для: victoor
(13.03.2007 в 12:37)
| | | если есть опасения о копировании параметров в память и т.п. то можно передавать значение по ссылке...
function GetNickChempion($PrnStr, $QueryStr, $nick, &$clan)
{...}
GetNickChempion($PrnStr, $QueryStr, $nick, &$clan);
|
Такой способ НИЧУТЬ не уступает глобальным переменным (так же можно обратиться к любому значению, так же можно его изменить, в случае необходимости), НО... есть один существенный плюс - ГАРАНТИРОВАНО работает =)))
Почему заострил на этом внимание, потому что пару раз столкнулся с тем, что скрипт, отлаженный локально с использованием глобальных переменных РЕАЛЬНО НЕ РАБОТАЕТ при выкладывании на хостинг... отладка и несколько отладочных строк кода показывали, что даже после включения в функцию определения global $var; глобальная переменная все равно недоступна... Собственно после этого и отказался от глобальных переменных насовсем =))) | |
| |
|
|
| |
|
|
| |
для: victoor
(13.03.2007 в 12:37)
| | | копии параметров, не подвергшихся изменению, фактически не создаются. | |
| |
|
|
| |
|
|
| |
для: Valick
(13.03.2007 в 08:19)
| | | function GetNickChempion($PrnStr, $QueryStr, $nick, $clan)
Так работало.
Но, поскольку изменения массива нигде не планируется, а сам массив двумерный и там в общей сложности более 600 записей, я решил, что с точки зрения быстродействия и занятости памяти так будет хуже. | |
| |
|
|
| |
|
|
| |
для: victoor
(13.03.2007 в 12:32)
| | | А вот еще вопрос:
что выгоднее, с точки зрения быстродействия:
- глобальные переменные
- передача масива через параметр?
P.S. Изменяться данные не будут - будет только считывание из этого массива. | |
| |
|
|
| |
|
|
| |
для: Valick
(13.03.2007 в 08:26)
| | | Спасибо, помогло. | |
| |
|
|
| |
|
|
| |
для: Valick
(13.03.2007 в 08:19)
| | | Прочитал, всё пересказывать не буду, но функция GetNickChempion не видит да и не должна видеть вашу глобальную переменную
Попробуйте так:
function GetNickChempion($PrnStr, $QueryStr, $nick)
{
global $clan;
.......
echo($clan['100']['Адрес_иконки']); # А здесь не выведет значение :(
............
};
GetNickChempion('Дневной чемпионат в Городе Света:','День_Свет', $nick);
echo($clan['100']['Адрес_иконки']); # Выведет значение
|
| |
| |
|
|
| |
|
|
| |
для: victoor
(13.03.2007 в 01:45)
| | | Попробуйте передать значение в функцию function GetNickChempion($PrnStr, $QueryStr, $nick, $clan)
Почему так? Не знаю)... При изучении ПХП я сразу отказался от глобальных переменных, ознакомлюсь с ними когда будет свободное время.
И вообще если вы используете чужие коды (с миру по нитке), то глобальные переменные вам может и "помогут", а если пишите сами, то лучше от них отказаться с самого начала. | |
| |
|
|
| |
|
|
| | Есть файлик function.php. в нем есть функция:
function clans() #Составление массива со всеми характеристиками кланов.
{
global $clan;
.........
}
|
этот файлик подсоединяется к главному файлу через include "../config/function.php";
В главном файле есть код:
function GetNickChempion($PrnStr, $QueryStr, $nick)
{
.......
echo($clan['100']['Адрес_иконки']); # А здесь не выведет значение :(
............
};
GetNickChempion('Дневной чемпионат в Городе Света:','День_Свет', $nick);
echo($clan['100']['Адрес_иконки']); # Выведет значение
|
Подключение файла function.php идет в самом начале, как и вызов функции clans();
Почему echo($clan['100']['Адрес_иконки']); в основном файле определено (выводится) а в функции GetNickChempion не выводится?
Ведь объявлено global $clan;
Почему так? | |
| |
|
|
|