比較以下情況時,哪一個最快?下面是示例代碼示例。php> performance> session vs globals vs db>?
基本上,我試圖找出什麼是使用全局變量的最佳選擇。 我存儲的全局變量對所有用戶都是一樣的......它們是所有用戶相同的應用程序級別值,例如application_name或application_home_page_url ...
我將擁有大量函數使用這些應用程序級別的值,我不想通過他們的論據,但我認爲這將是最快的方式..我的選擇似乎與數據庫查找或使用會話變量或全局工作..
當然,你可以通過拋出assoc來把它提升到下一個級別。將數組排列到等式中以使其更快/更慢。
我們必須記住的另一個因素是我們在這裏討論的是很多用戶。
那麼,什麼是最好的方式來折騰/使用這些應用程序級別的變量在個人功能?
//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 2012-03-05 14:49:41
此外,會話是爲每個訪問者設置的,因此您將多次存儲相同的信息。 – jeroen 2012-03-05 14:52:57
有沒有理由不能傳遞變量? – AlexC 2012-03-05 14:56:24