2013-02-15 46 views
0

如何正確書寫條件語句,其中如果A是真實的,然後做B和C,做別的d和EPHP,如果A則B和C別的d和E

if (empty($A)) { B=0 AND C=0; } 
    else {D=X AND E=Y; } 

一般,這看起來正確嗎?

這裏是我的實際代碼:

if (empty($_FILES['file']['name'])) { 
$filelink = '' AND $filetext = ''; 
} else { 
$filelink = mysql_real_escape_string($location) AND 
$filetext = 'Open File'; 
} 

回答

2

這就是括號是;他們創建一個塊。無論在哪個塊中都會執行。你可以把儘可能多的語句,只要你想在同一區塊內:

if (empty($_FILES['file']['name'])) { 
    $filelink = ''; 
    $filetext = ''; 
} else { 
    $filelink = mysql_real_escape_string($location); 
    $filetext = 'Open File'; 
} 
+1

+1爲快 – 2013-02-15 16:42:32

+0

謝謝@ joseph-silber(或@ samuel-cook)。你能解釋一下爲什麼AND不能用在這裏嗎?只是爲了我的教育,如果你有時間。謝謝。 – 2013-02-15 16:44:23

+0

謝謝,明白了 - 有道理。 – 2013-02-15 16:45:27

0
if (empty($_FILES['file']['name'])) { 
    $filelink = ''; 
    $filetext = ''; 
} else { 
    $filelink = mysql_real_escape_string($location); 
    $filetext = 'Open File'; 
} 
0

你不需要的語句之間的AND

if (empty($_FILES['file']['name'])) { 
    $filelink = ''; 
    $filetext = ''; 
} else { 
    $filelink = mysql_real_escape_string($location)l 
    $filetext = 'Open File'; 
} 

如果if語句評估爲真,所有下一個匹配的花括號之間的代碼將運行。如果爲false,則會運行else之後匹配花括號之間的所有代碼。

+0

感謝您的補充解釋,@ jonathan-kuhn。正如你所看到的,我是PHP的新手,這幫助我理解的不僅僅是語言。乾杯! – 2013-02-15 16:53:22

0

AND是一個操作員。

它是一個邏輯運算符,需要兩個操作數。左和右或L + R。

它首先評估左手操作數L,然後將其轉換爲布爾值。如果該值爲false,則R從不執行,並且該運算符返回false。如果這是真的,則R被評估並轉換爲布爾值。如果布爾值爲true,則運算符返回true,否則返回false。

所以從你所說的你要執行語句使用AND運算符來實現一個永遠不會被使用的臨時布爾值。

從這個角度來看,你的邏輯是錯誤的。而是使用「;」令牌來分隔語句。而不是說(A和B)說{A; B;}然後A和B都將被評估。

+0

感謝您在這裏幫助我瞭解更多,@ bobshacks。 – 2013-02-15 16:54:41

相關問題