我有一段代码正在检查是否已为我的网站设置了会话ID,如果没有,则会从我的网址中为其分配一个值。以下是我的代码:
if (!$_SESSION['test_id']){
$_SESSION['test_id'] = strip_tags($_REQUEST["id"]);
};
我的问题不是很大,但我收到的通知是:
Undefined index: test_id
是否有更好的方法在不通知通知的情况下分配此变量?这段代码在Expression Engine平台(Code Igniter)中,因此我无法完全控制通知的显示。此特定页面在我的代码中关闭了所有错误报告,但它仍然显示。
非常感谢您的帮助!
答案 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
,你就是金色......