php - 分配会话值的问题

时间:2012-02-24 17:36:47

标签: php codeigniter

我有一段代码正在检查是否已为我的网站设置了会话ID,如果没有,则会从我的网址中为其分配一个值。以下是我的代码:

if (!$_SESSION['test_id']){
  $_SESSION['test_id'] = strip_tags($_REQUEST["id"]);
};

我的问题不是很大,但我收到的通知是:

Undefined index: test_id

是否有更好的方法在不通知通知的情况下分配此变量?这段代码在Expression Engine平台(Code Igniter)中,因此我无法完全控制通知的显示。此特定页面在我的代码中关闭了所有错误报告,但它仍然显示。

非常感谢您的帮助!

4 个答案:

答案 0 :(得分:3)

也可以针对isset()进行测试。这将消除通知。

if (!isset($_SESSION['test_id']) && !$_SESSION['test_id']){
  $_SESSION['test_id'] = strip_tags($_REQUEST["id"]);
};

答案 1 :(得分:0)

是的..你可以使用isset()

来做
if(!isset($_SESSION['test_id']))

这是因为当您检查是否存在时,'test_id'不存在..并且isset没有创建它...

答案 2 :(得分:0)

你应该试试  if(!isset($ _ SESSION ['...'])){}

或  if(!empty($ _ SESSION ['...')){}

答案 3 :(得分:0)

您正在寻找的等效代码是:

if (!empty($_SESSION['test_id']))

isset($foo) && !$foo在逻辑上等同于!empty()。 Empty是一种语言结构,就像isset一样,但它也会检查它是否为非空值。

所以不需要提取条件,只需在那里抛出!empty,你就是金色......