isset($ _ SESSION)是什么意思?我找到了以下代码片段 -
if (!isset($_SESSION)) {
// php code
}
编辑:
我在facebook风格的聊天脚本的define.php中找到了以下代码段 freichat:
if (!isset($_SESSION)) {
$this->frm_id = $_SESSION[$this->uid . 'usr_ses_id'];
$this->frm_name = $_SESSION[$this->uid . 'usr_name'];
}
如果之前没有设置$ _SESSION,那么如何将两个会话变量分配给其他变量?
答案 0 :(得分:2)
这意味着如果session($_SESSION
是数组,PHP的内置变量)未设置(用!
指定)。这基本上检查是否没有活动的会话变量/数组,在这种情况下做某事/运行php代码。
虽然正确的方法是通常检查特定的会话变量,如:
if (!isset($_SESSION['key name'])) { ... }
有关详细信息,请参阅文档:
答案 1 :(得分:1)
我的评论摘要:
isset
determines if a variable is set and is not NULL。 !
negates the condition,if (!false)
将评估为true。 $_SESSION
是一个超全球版,可在following conditions上找到:请注意,在使用会话时,在使用
session_register()
函数注册变量或向$_SESSION
超全局数组添加新密钥之前,不会创建会话记录。无论是否使用session_start()
函数启动了会话,这都适用。
当没有会话存在时,您的if (!isset($_SESSION))
将评估为true。然后它将执行if块中的代码。但是,该代码不起作用。如果你run this snippet
<?php
var_dump($_SESSION); // undefined notice + NULL
var_dump(isset($_SESSION)); // FALSE
if (!isset($_SESSION)) { // !FALSE is TRUE
$foo = $_SESSION['usr_ses_id']; // undefined notice
}
var_dump($foo); // NULL
var_dump($_SESSION); // still undefined undefined + NULL
你会看到它输出:
Notice: Undefined variable: _SESSION in /code/Kx2RMF on line 2
NULL
bool(false)
Notice: Undefined variable: _SESSION in /code/Kx2RMF on line 5
NULL
Notice: Undefined variable: _SESSION in /code/Kx2RMF on line 8
NULL
因此,除非我遗漏了某些内容,否则我会说聊天脚本中的代码毫无意义。
答案 2 :(得分:0)
检查是否已设置任何会话变量。在PHP中,$_SESSION
是一个值数组,因此,如果不指定[]
运算符,则会检查是否已设置$_SESSION
。
答案 3 :(得分:0)
这意味着会话尚未初始化,您应该在尝试使用任何会话功能之前调用session_start()
。