2015-02-24 77 views
1

我使用的是我展示以下警告PHP脚本:

Undefined variable: _pagi_htaccess 

该生产线是这一个:

if (!$var){ 

我做了如下变化:

if (!isset($var)){ 

警告不再存在,但脚本无法正常工作。在更改之前,if中的代码已执行,现在使用!isset,代码正在执行else。所以,我不明白$ var和isset($ VAR)之间的差值

+2

isset确定变量是否设置为某个值。 !$ var确定$ var是否为FALSE或NULL或空字符串或未设置。 – Halfstop 2015-02-24 21:35:14

+1

'isset($ var)'检查变量的内容是否为空,而'!$ var'将返回FALSE /未设置/为空或NULL – Alex 2015-02-24 21:36:10

+0

只需尝试'empty($ var)'...它与'!$ var',只是没有通知 – bwoebi 2015-02-24 21:39:29

回答

1

作为@Halfstop@Alex说。 !$ var是$ var的否定,$ var被转换为布尔值,然后它被评估,如果$ var等于true,!$ var等于false。另一方面,isset($ var)确定变量是否被设置并且不是NULL,那么如果你有if(!isset($ var)),你问的是否设置为NULL $ var。

2

试试这个:!

if (isset($var) && !$var) { 

这首先检查,看是否存在变量,然后,只有到那时,检查它是否为假。

请注意:这是不好的编程。最好找出为什么,在某些情况下,$ var不存在。这可能是由某种编码错误引起的。