【问题标题】:PHP: why is this null different from the other nullPHP:为什么这个空值与另一个空值不同
【发布时间】:2010-03-14 14:25:04
【问题描述】:

您好,我尝试了 2 件应该相同的事情,但是我的测试表明不同,有人知道为什么我唯一要做的就是将其放入变量中...

    if ($_SESSION[$something] === null)
        echo("this is null");

$_SESSION[$something] 不存在,所以它确实说:“这是空的”。 现在看看这个

$theSession = $_SESSION[$something];

if ($theSession === null)
    echo("this is null");

现在它没有说“这是空的”,而应该完全一样吧?

【问题讨论】:

  • 您是否忘记了第二个 sn-p 中 theSession 之前的 $
  • 我的坏处是 $ 它应该和 $ 在一起

标签: php variables null session


【解决方案1】:

您需要在第二个代码块中的 theSession 前面加上一个 $。

您可能不需要something 前面的$。仅当 $something 包含会话变量名称的字符串时才需要它。否则,如果某些东西是会话变量名,则不需要 $。

【讨论】:

  • $something 中的 $ 很可能 很有用,例如 $something='xyz'; echo $_SESSION[$something];
  • 如果你去掉 $ 你需要引用字符串
【解决方案2】:

您还应该考虑使用is_null 来检查变量是否包含空值。

【讨论】:

  • 有什么特别的原因吗?该文档页面上的 cmets 说它更慢(完全不重要,但仍然如此)。
  • 主要是可读性。 if (is_null($$something)) { ... 非常简单。
猜你喜欢
  • 2022-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-02
  • 1970-01-01
  • 2017-10-12
  • 2011-02-26
  • 2021-06-24
相关资源
最近更新 更多