2012-08-25 64 views
0

那麼,我來自Java的編譯語言,現在我正試圖在某些特定領域處理PHP。今天,我創建了一個「測試表單」,以便知道如何檢查有效值,現在我遇到了一些小問題。在PHP中使用布爾運算符

假設我有多個領域的評估,使用布爾變量我願做這樣的事情:

//ASSUMING THAT ALL IS CORRECT 
$correct = true; 

$correct &= is_ok($name); 
$correct &= is_ok($last_name); 
$correct &= is_ok($nickname); 
$correct &= is_ok($best_friend); 

if (!$correct) { 
    //AT LEAST ONE FIELD IS INCOMPLETE 
} 
else 
{ 
    // EVERYTHING IS OK 
} 

function is_ok($field){ 
    return !empty($field); 
} 

的問題,我發佈的是&=看起來無法正常工作。我是否需要使用另一個布爾運算符?

+1

這不是有效的PHP代碼。你能發佈實際的代碼嗎? –

+0

先閱讀一些PHP教程,然後再試一次。 – jeremy

+0

查看初學者的$變量部分。 – Rooster

回答

3

務必閱讀說明書第一:

按位運營商移動=邏輯運算符

我認爲你正在尋找這樣的:

//ASSUMING THAT ALL IS CORRECT 
$correct = true; 

$correct = $correct && is_ok($name); 
$correct = $correct && is_ok($last_name); 
$correct = $correct && is_ok($nickname); 
$correct = $correct && is_ok($best_friend); 

你應該開始形式的教程,基本的經驗教訓,以避免這類問題的基本文件。

+0

嘿,有用!但你知道嗎?我試圖再現像'$ string。= $ foo'這樣的「字符串短串聯」,但是它適用於布爾值,並且讓我困惑了一點。 – manix

+0

@manix Thats ok,但是1.仍然不是邏輯運算符。 2.你爲什麼要嘗試重現某些東西而不是閱讀手冊? – Peter

+0

我會記住的!感謝你的幫助和其他人的幫助。 – manix

0

&是按位運算符。對於bloolean使用& &,像

`$correct = $correct && is_ok($name);` 

因爲

echo 1 & 2 

給出0

1
if (is_ok($name) && is_ok($last_name) && is_ok($nickname) && is_ok($best_friend)) { 
    echo "Good."; 
} else{ 
    echo "Bad."; 
} 

或者更簡單地說

if (!empty($name) && !empty($last_name) && !empty($nickname) && !empty($best_friend)) { 
    echo "Good."; 
} else{ 
    echo "Bad."; 
} 

如果你真的想將它寫個e你想寫它的方式:

$correct = true; 
$correct = $correct && is_ok($name); 
$correct = $correct && is_ok($last_name); 
$correct = $correct && is_ok($nickname); 
$correct = $correct && is_ok($best_friend); 
+2

這是非常嚴格的。 ':P'例如,我可能只是讓'is_ok()'接受一個或多個要測試的變量。使其更簡單。 –

+0

最後一個是我正在尋找的!非常感謝 – manix