!$ var与isset()不同?

时间:2015-02-24 21:34:04

标签: php if-statement boolean isset

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

Undefined variable: _pagi_htaccess

这一行是这样的:

if (!$var){

我做了以下更改:

if (!isset($var)){

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

之间的区别

2 个答案:

答案 0 :(得分:2)

试试这个:

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

首先检查变量是否存在然后,然后检查它是否为FALSE。

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

答案 1 :(得分:1)

@Halfstop@Alex说。 !$ var是$ var的否定,$ var被转换为boolean然后它被评估,如果$ var等于true,!$ var等于false。

另一方面,isset($ var)确定变量是否设置且不是NULL,然后如果你有if(!isset($ var))则询问是否设置并且是$ $ var。