2015-02-24 75 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不存在。這可能是由某種編碼錯誤引起的。