<?
foreach ($data as $key => $value) {
$_SESSION[$key]=$value;
};
?>
我正在使用数据库。我将用户数据提供给$data
,然后我想将其复制到$_SESSION
,这个代码是否正确,或者有任何类型的问题会导致它无法正常工作正确?
答案 0 :(得分:3)
在;
之后你不需要}
因为花括号已经指向身体的开始和结束,但它是允许的,所以你的foreach是正确的。但最好使用
<?
foreach ($data as $key => $value) {
$_SESSION[$key]=$value;
}
?>
您的代码;
由解释器在
<?
foreach ($data as $key => $value) {
$_SESSION[$key]=$value;
}
; // There is another empty command line, that is unnecessary
?>
答案 1 :(得分:0)
超出不需要的分号that was already mentioned,是的,如果您要做的只是将foreach
的内容复制到{{1}中,这是$data
函数的正确用法变量。
唯一要记住的是$_SESSION
变量对于它可以容纳的变量类型有一些限制。 As mentioned in the documentation,$_SESSION
变量的内容被序列化,因此您将无法在其中存储资源,例如与数据库的连接。查看我发布的链接中的警告部分。
答案 2 :(得分:0)
$ _SESSION的直接值赋值有效。我正在使用PHP 5.3。
<?php
$data = array('foo' => 'bar', 'key' => 'value', 'k' => 'v');
session_start();
$_SESSION = $data;
$_SESSION['new'] = 'new_value';
print_r($_SESSION);
?>
输出:
Array
(
[foo] => bar
[key] => value
[k] => v
[new] => new_value
)