2016-01-24 22 views
-1

說,我有這樣的功能:PHP:在三元組中使用isset?

function foo($var = null) { 

    return $var ? 'good' : 'bad'; 
    // return (isset($var) && !empty($var)) ? 'good' : 'bad'; 
} 

此功能工作正常,它應該是syntaticaly正確的,因爲$var默認值總是設,沒有任何理由使用isset()empty PHP函數?

P.S: good是可以接受的,當$var不是nullfalse''

+0

使用isset。它保存了你,如果由於任何原因$ var沒有設置 –

+0

可能的重複:http://stackoverflow.com/questions/413929/weak-typing-in-php-why-use-isset-at-all – PhoenixWing156

+0

我使用像這樣:'$ page =(isset($ _ GET [「page」]))? $ _GET [「page」]:「index」;'。這很好。 –

回答

4

如說,在評論,請使用您if測試,PHP procedes的類型推斷。

因此,$var中的值將回顯bad,即使它們不爲空。

對於更精確的答案,你應該檢查PHP type comparison tables:你有這取決於你測試變量的值if($x)isset()is_null()empty()之間的差異exemples。

+0

woow,php類型比較表是非常好的資源,我應該在桌面上保存快照 – alex