2015-11-16 36 views
0

我不知道爲什麼,但在PHP腳本變量的值是0時後不提交頁面...

$use = isset($_POST['use']) ? (int) $_POST['use'] : ''; 

沒有Ajax的權利,但現在下面,如果始終是真實的:

// $use must be '' and '' != 0 or 1 right? 
if ($use == 0 || $use == 1) 

這是不是這樣做的正確方法是什麼?爲什麼執行之間的代碼?

+0

您將'isset()'與'empty()'混淆。 ''「'會通過'isset()',那麼你的'(int)'會將它轉換爲'int',結果爲'0'。 –

回答

1

if ($use === 0 || $use === 1)

將檢查變量的分型以及

http://php.net/manual/en/language.operators.comparison.php

利用在該實例中的鬆散比較0可以是假的,''也可以看作是錯誤的,因而執行if('' == 0)爲真

+0

對!我忘了那個。謝謝! –

+1

這裏還有一個問題。第一行的轉換意味着''''的值將被轉換爲'0'。 –