2013-11-26 71 views
0

我有一個if語句的問題。 這是if語句:如果或聲明不能正常工作

if($userID != $_SESSION["sess_id"] || $creator != $_SESSION["sess_id"]){ 

echo "Success"; 
exit; 

} 

這是變量的值:

$userID = 24; 
$creator = 13; 
$_SESSION["sess_id"] = 13; 

所以簡稱:

if(24 != 13 || 13 != 13){ 

echo "Success"; 
exit; 

} 

爲什麼成功仍然呈現?

請注意,這只是我的代碼的縮寫版本,沒有一個變量設置爲這樣,但值是正確的。

回答

5

因爲24 != 13依然如此。對於OR這足以說明其中一方是真的。

if (true || false) //true 
if (true && false) //false 
if (false || false) //false 
if (false && false) //false 
+0

謝謝,我明白了! – Jacob

1

由於您使用||OR並且只需要一個說法是真實的,並在你的情況24 != 13因爲您使用「||」爲真

1

。這是一個「或」。 您必須使用「& &」(和)。

if($userID != $_SESSION["sess_id"] && $creator != $_SESSION["sess_id"]){ 
+0

我正要這樣做 – AdRock

0

表達$userID != $_SESSION["sess_id"] - >24 != 13被滿足(TRUE),使得其通入的條件下,已經使用OR條件,無論任何一個條件true塊得到執行。