假设我正在存储一个名为 $_SESSION["logged_in_user"]
的数组或对象。
如果我需要在整个脚本中反复引用它,以下哪项是“最佳实践”?
每次都使用
$_SESSION["logged_in_user"]
(即$_SESSION["logged_in_user"]["first_name"]
)?将对象复制到一个新变量中,如
$logged_in = $_SESSION["logged_in_user"]
?创建对 session 变量的引用,如
$logged_in =& $_SESSION["logged_in_user"]
我可能想得太多了,但我主要担心的是脚本开销和可读性。我不确定重复引用 session 变量是否比引用内联声明的变量慢。我也不知道将 session 变量复制到“常规”变量中是否会增加不必要的开销。我确实喜欢 $logged_in["first_name"]
优于 $_SESSION["logged_in_user"]["first_name"]
的可读性。
那么这里有最佳实践吗,还是真的无关紧要?
最佳答案
$_SESSION
是一个特殊的 PHP 超全局数组。因此,从技术上讲,您可以随时通过使用它来引用它:
$_SESSION['logged_in_user']
然而,它也很特别,因为它可以改变。以下示例使其可见:
$alias =& $_SESSION;
session_start();
$alias['foo'] = 'bar';
此代码不会设置 $_SESSION['foo']
。 $alias
指向先前的 $_SESSION
,session_start()
已创建一个新 session 。
如果您了解这些注意事项,您自然可以创建自己的 $_SESSION
抽象。
关于php - 在 PHP 中引用 session 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8113494/