Php !$var与isset()不同?

Php !$var与isset()不同?,php,if-statement,boolean,isset,Php,If Statement,Boolean,Isset,我使用的PHP脚本向我显示以下警告: Undefined variable: _pagi_htaccess 这条线是这样的: if (!$var){ 我做了以下改变: if (!isset($var)){ 警告不再存在,但脚本不起作用。在更改之前,执行了if中的代码,现在使用!isset,代码正在执行else。所以,我不明白它们之间的区别$var和!isset($var)试试这个: if (isset($var) && !$var) { 这首先检查变量是否存在,然后才检查

我使用的PHP脚本向我显示以下警告:

Undefined variable: _pagi_htaccess
这条线是这样的:

if (!$var){
我做了以下改变:

if (!isset($var)){
警告不再存在,但脚本不起作用。在更改之前,执行了if中的代码,现在使用!isset,代码正在执行else。所以,我不明白它们之间的区别$var和!isset($var)

试试这个:

if (isset($var) && !$var) {
这首先检查变量是否存在,然后才检查它是否为FALSE

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

如和所说$var是$var的求反,$var被转换为布尔值,然后进行求值,如果$var等于true$var等于false


另一方面,isset($var)确定变量是否已设置且不为空,如果您有if(!isset($var)),则您将询问是否未设置且为空$var。

isset确定变量是否已设置为某个值$var确定$var是否为FALSE、NULL或空字符串或未设置。
isset($var)
检查变量的内容是否为NULL,而
$var
将返回FALSE/not set/empty或null只需尝试
empty($var)
…它与
相同$var
,恕不另行通知