foreach的这种用法是否正确?

时间:2014-02-09 08:37:09

标签: php foreach

<?
foreach ($data as $key => $value) {
    $_SESSION[$key]=$value;
};
?>

我正在使用数据库。我将用户数据提供给$data,然后我想将其复制到$_SESSION,这个代码是否正确,或者有任何类型的问题会导致它无法正常工作正确?

3 个答案:

答案 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
)