2013-07-25 78 views
-1

我看過這個回答: Is there any reason to use isset()?我必須使用php isset來檢查變量嗎?

我還有一個問題。 如果我想檢查POST的一些變種。 我可以使用:

$foo="".$_POST["foo"]; 

,而不是

if(isset($_POST["foo"])){ 
    $foo=$_POST["foo"]; 
else{ 
    $foo=""; 
} 

這是任何理由免疫它。 謝謝

+1

如果'foo'沒有設置,你仍然會得到'注意事項:未定義指數「foo'',所以是。 –

+2

這個問題似乎是無關緊要的,因爲它涉及到另一個問題。它應該是一個評論。 –

+4

你可以將它縮短爲'$ foo = isset($ _ POST ['foo'])? $ _POST ['foo']:'';'帶有三元運算符。 –

回答

2

@Michael Berkowski在評論中寫道這一點!

如果你只是想簡化實現,你可以使用內聯語句。

$foo = (isset($_POST['foo'])) ? $_POST['foo'] : "";

沒有isset你不會知道,如果$_POST['foo']在給定的情況下確實存在,所以你通常會獲得拋出到屏幕的錯誤信息!

+1

或您的日誌文件,具體取決於錯誤報告。 – aynber

+0

@aynber非常真實! – Phas1c

0

嘗試使用:

$foo="".$_POST["foo"]; 

將導致上調的通知,如果$ _POST [ 「富」]未設置。但是如果你的錯誤報告被設置爲忽略通知,那麼你是否使用isset()是不相關的。但是,如果您不想提出通知,則必須使用isset()。

0

我喜歡:

$foo = ($foo) ? $foo : ''; 

個人:)