При сравнении следующих сценариев, какой из них был бы самым быстрым? Примерный примерный код ниже.php> performance> session vs globals vs db>?
В принципе, я пытаюсь выяснить, что является лучшей альтернативой использованию глобальных варсов. Глобальные хранилища, которые я хранил, будут одинаковыми для всех пользователей ... они являются значениями уровня приложения, которые одинаковы для всех пользователей, например имя приложения или application_home_page_url ...
У меня будет тонна функций используя эти значения уровня приложения, и я не хочу передавать их по аргументам, хотя я думаю, что это был бы самый быстрый способ. Мои параметры, похоже, работают с db look ups или с использованием сессионных варов или глобальных переменных.
Конечно, вы можете перейти на следующий уровень, бросив его. массивы в уравнение, чтобы сделать его быстрее/медленнее.
Другим фактором, который мы должны иметь в виду, является то, что мы говорим о множестве пользователей здесь.
Итак, что является лучшим способом бросить вокруг/работать с этими переменными уровня приложения в рамках отдельных функций?
//for global based approach
$my_global_var1 = "abc";
$my_global_var2 = "xyz";
//for global + array based approach
$my_globals['var1'] = "abc";
$my_globals['var2'] = "xyz";
//for session based approach
$_SESSION['my_global_var1'] = "abc"
$_SESSION['my_global_var2'] = "xyz";
//for session + array based approach
$_SESSION['my_globals']['var1'] = "abc";
$_SESSION['my_globals']['var2'] = "xyz";
//for db based approach
$varname = 'var1';
//or some other way, you may think of
//??
function func1()
{
global $my_global_var1;
global $my_global_var2;
//....
my_var1 = $my_global_var1;
}
function func2()
{
$my_var1 = $my_globals['var1'];
}
function func3()
{
$my_var1 = $_SESSION['my_global_var1'];
}
function func4()
{
$my_var1 = $_SESSION['my_globals']['var1'];
}
$my_var1 = func5($varname)
function func5($varname)
{
return lookup($varname);
}
Если эти значения не должны изменяться, вы должны использовать константы – soju
Кроме того, сеансы установлены для каждого посетителя, поэтому вы будете хранить одну и ту же информацию много раз. – jeroen
Есть ли причина, по которой вы не можете передать переменные? – AlexC