为什么这会返回“未定义索引”错误?

时间:2019-12-08 20:37:53

标签: php session

以下代码会产生未定义的索引错误:

if(isset($_SESSION['sessionName'])); { echo $_SESSION['sessionName']; } 

但这很好用:

if(isset($_SESSION['sessionName'])) echo $_SESSION['sessionName']; 

请同时检查是否设置了$_SESSION,如果为TRUE,则显示/回显该$_SESSION的值。 我通常使用花括号,但在第一种情况下看不到或理解该错误。 我的IDE(PHPStorm)不会抱怨语法,因此我可能会遇到问题。

1 个答案:

答案 0 :(得分:3)

我将my comment转换为带有其他信息的答案。

  

分号结束一条语句,per the manual”“与C或Perl一样,PHP要求在每个语句的末尾以以分号终止的指令。 PHP代码块的结束标记自动表示分号;您无需在分号结尾处终止PHP块的最后一行。如果存在,该代码块的结束标记将包括紧随其后的换行符。“ / em>

这里发生的事情是,您向我们显示的第一行产生了错误,因为isset()由于分号而被取消/暂停,然后您试图回显一个不完整的会话数组没有设置/不为空。

您可能还没有开始会话;目前还不知道。