请任何人帮我解释以下代码的含义?

时间:2013-08-16 07:49:23

标签: php if-statement session-variables

请帮助我理解以下代码:

<?php
session_start();
if(!isset($_SESSION['StaffId'])){
    $_SESSION['StaffId']="";
}
?>

是否意味着如果没有一组StaffId,将其设置为null?

3 个答案:

答案 0 :(得分:3)

正在检查'StaffId'数组中是否存在密钥$_SESSION

例如,如果您有一个数组:

$person = array( 'name' => 'george', 'age' => 22);

然后isset($person['name'])将返回true,但isset($person['height'])将返回false。

因此,您的代码示例会将$_SESSION['StaffId']设置为''(空字符串),但前提是尚未为$_SESSION设置该密钥。

编辑:值得注意的是,如果您不知道$_SESSION是PHP中具有特殊含义的变量,see the docs

答案 1 :(得分:1)

它只是检查是否设置了$_SESSION['StaffId']

如果不是,则将其设置为“”,这是一个空字符串,而不是空

答案 2 :(得分:-1)

isset - 确定变量是否已设置且不为NULL。

如果使用unset()取消设置变量,则不再设置该变量。如果测试已设置为NULL的变量,则isset()将返回FALSE。另请注意,NULL字节(&#34; \ 0&#34;)不等同于PHP NULL常量。

如果提供了多个参数,则只有在设置了所有参数后,isset()才会返回TRUE。评估从左到右进行,一旦遇到未设置的变量就停止。

如果var存在并且其值不是NULL,则返回TRUE,否则返回FALSE。