if($err)
$_SESSION['msg']['login-err'] = implode('<br />',$err);
三个快速问题:
- 为什么在这里使用二维数组?为什么不直接说
$_SESSION['login-err']
? - 会话变量如何工作?我环顾四周,似乎只能收集到您可以分配存储在会话中的变量,但是是否有任何预定义的变量?
- 在 PHP 中,二维和一维数组可以互换吗?如果您想要不同维度的数组,我习惯于需要一个新变量。
var_dump($_SESSION)
如果您想自己检查,请尝试执行)。session_start();
在要访问会话的每个文件的开头使用,并且可以再次检索该数据。我不知道任何预定义的变量,尽管我不明白你为什么真的需要它们。我们不知道,因为我们不知道原始程序的上下文或设计。
PHP 会话是从请求到请求中保留数据的好方法。该$_SESSION
变量为给定用户保留其值,直到会话关闭或超时。在此处查看有关 PHP 会话的所有信息:http: //php.net/manual/en/features.sessions.php
PHP 数组非常灵活,可以根据需要添加维度,因为添加新维度所要做的就是将一个数组放入另一个数组的元素中。见这里:http ://www.php.net/manual/en/book.array.php
$_SESSION
是字典,不是数组。虽然语法可能看起来相似,但您可以在字典中插入任意数量的内容,而无需重新声明它。$_SESSION
在其'msg'
插槽中存储了另一个字典变量,因此当您访问$_SESSION['msg']
它时会返回另一个字典,然后您可以'login-err'
在其中添加一个指向implode('<br />',$err);
. 我猜想编写代码的人都想将所有消息组织在一起作为$_SESSION
字典中的一个插槽。
$_SESSION
是一个字典,在同一会话的所有 php 文件中都是不变的,允许您在 php 文件之间存储和发送信息。没有预定义的$_SESSION
变量。