2014-02-18 44 views
-3

如果我們需要檢查變量是否設置與否,我們可以很容易地通過函數isset()函數函數來查看變量是否有值,但它是零

但對於is_zero檢查呢?

isset($myvar) 

沒有完成我的任務。如果我們使用isset($ myvar的),那麼PHP將返回false總是和如果我使用

if(empty($myvar)) 

然後我得到通知:

Notice: Undefined index: $myvar 

我想這一定是有在PHP中,因爲有時我們需要也存儲零值變量。

我嘗試這樣做:

if(is_zero($myvar)) 
    echo $myvar; 

但得到這個錯誤:在PHP中調用未定義功能is_zero()

也許一個錯誤: 致命錯誤?

+0

究竟是「零」?你的意思是'空'嗎? – deceze

+1

'empty($ myvar)'永遠不會拋出* Undefined index *通知。 – deceze

+0

目前還不清楚你到底在問什麼,我能做的最好的事情就是向你指出:[PHP的權威指南isset and empty](http://kunststube.net/isset/) – deceze

回答

2

is_zero不是一個PHP函數,你可以寫你自己:

function is_zero($input) 
{ 
    if($input === 0) 
     return true; 
    else 
     return false; 
} 

如果存在$輸入沒有前面定義的可能性,你可以在前面$輸入或@前加& is_zero來隱藏可能的通知錯誤。

function is_zero(&$input) 
{ 
    if($input === 0) 
     return true; 
    else 
     return false; 
} 

if(@is_zero($variable)) 
+4

是'function is_zero($ input){return $ input === 0; }' –

+0

看起來不簡單。但有更多的方法可以做到這一點;) – Dylan

+1

你真的需要'=== 0'的函數嗎? – deceze

-1

你可以只檢查變量的值或沒有。這意味着,如果值不

if(value) { 
} 

的值爲true:

  • 不確定
  • NaN的
  • 空字符串( 「」)
+0

我仍然看到注意:未定義索引 – Thompson

+0

「如果變量不存在,輸出變量...」 – deceze

0

您可以輕鬆地檢查,如果一個變量是零通過在變量前面添加一個感嘆號像這樣:

if(!$myVar) 
{ 

} 
+1

注意,這也匹配'null','false','''',''0 '和'array()',不僅是'0'。 – deceze

0

空()將不會顯示你Notice: Undefined index: $myvar

如果沒有設置變量,或者如果它的值是零,它在打印時它

echo $myvar

如果變量沒有設置你返回1

所以你應該已經得到誤差不能打印

所以檢查設置和爲零利用這一

if(empty($myvar)){ 
    if(isset($myvar)) 
    echo $myvar; 
    else 
     echo "variable not set"; 
} 
+0

對於「is set but empty」,我寧願使用if(isset($ var)&&!$ var)''isset'和'empty'。它做同樣的事情。 – deceze

+0

是的。但我只是希望他了解不同的情況,所以只有我用'if else' – krishna

相關問題