我正考虑在会话中存储数据的两种方式:
$_SESSION['data'] = array(
'a'=>'a',
'b'=>'b',
'c'=>'c'
);
或
$_SESSION['a'] = 'a';
$_SESSION['b'] = 'b';
$_SESSION['c'] = 'c';
哪一个更好,特别是当SESSION数据项的数量很大时?
答案 0 :(得分:0)
这取决于您的设计和要求
选项1:会话内的数组
如果变量a
,b
和c
除了"会话"中的变量之外还有一些共同的含义,我会使用$_SESSION['data']
来捕获它们一个常见的数组。通过这种方式,您可以传递此data
数组并使用常用运算符。而且,如果您需要其他类似data2
的内容,您可以使用会话。例如,如果商品引用购物车中的商品,那么我将它们全部放在一个公共数组中。
示例:
$_SESSION['cart_items'] = array(
'a' => 1,
'b' => 2,
'c' => 5
);
选项2:直接使用会话数组
如果变量a
,b
和c
通常指的是您在会话中存储的任何内容,并且不会共享任何其他语义,那么只需将它们直接放在$_SESSION
中。这些一次性项的示例包括:当前登录用户的用户名,活动用户上次加载页面的时间等。在这种情况下,添加额外的data
数组可能只是无用的开销。 / p>
示例:
$_SESSION['user_id'] = 123;
$_SESSION['last_updated'] = date("Y-m-d H:i:s");