!$var 与 isset() 不同?

!$var is different than isset()?

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

Undefined variable: _pagi_htaccess

这一行是:

if (!$var){

我做了以下更改:

if (!isset($var)){

警告不再存在,但脚本无法运行。改之前,执行的是if里面的代码,现在有了!isset,代码执行的是else。所以,我不明白 !$var 和 !isset($var)

之间的区别

试试这个:

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

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

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

and 所说。 !$var 是$var 的否定,$var 转boolean 然后求值,如果$var 等于true,!$var 等于false。

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