2013-06-13 88 views
1

不知道什麼即時通訊在這裏做錯了,但出來總是爲空。如果沒有選擇答案,腳本應該輸出「你沒有選擇答案」,否則它應該輸出給出的答案:PHP如果爲空回聲其他回聲

我已經更新了上述腳本,但仍然得到空輸出,即使給出了答案:/

感謝所有幫助到目前爲止的傢伙,但即使下面的代碼不起作用,它現在只是輸出爲空白,如果沒有anwser,但如果你填寫它,它正確迴應答案。

if (empty($a1)) { 
echo"<li>\n<h2>1. " . $q1[0] . "</h2>\n" 
    . "<p>You did not select an answer</p>\n" 
    . "</li>\n"; 

} 

else { 

echo"<li>\n<h2>1. " . $q1[0] . "</h2>\n" 
    . "<p><strong>" . $q1[$a1] . ":</strong></p>\n" 
    . "<p>" . $r1[$a1] . "</p>\n" 
    . "</li>\n"; 

} 

完全忘了顯示此部分!

// get local copies of single answers 
$a1 = trim(isset($_POST['a1'])?$_POST['a1']:99); 
$a3 = trim(isset($_POST['a3'])?$_POST['a3']:99); 
$a4 = trim(isset($_POST['a4'])?$_POST['a4']:99); 
$a5 = trim(isset($_POST['a5'])?$_POST['a5']:99); 
+0

而錯誤是? –

回答

1

一個空字符串不是null

$a1 = ''; 
    if ($a1 == null) // is wrong 

應該

$a1 = ''; 
if ($a1 === '') 

if (empty($a1)) 
+1

'$ a ='';'當不使用嚴格比較時等於'null' – Prisoner

+0

感謝@Prisoner,更新了答案 –

+0

已更新但在選擇答案時仍然獲得空輸出 –

0

空是不一樣的空嘗試

if ($a === '')這也是尊重這對代碼質量較好的類型

4

不要使用if($a1 == null)使用if(empty($a1))if(isset($a1))

+0

'isset()'將返回true,如果你已經將一個變量賦值給一個空字符串... – DaGardner

+0

當然,這就是爲什麼我說'OR'但是謝謝指出。 –

+0

看到上面編輯的問題,仍然沒有快樂,一定是別的東西,也許在我的答案陣列? –

0
if (empty($a1)) { 
    echo"<li>\n<h2>1. " . $q1[0] . "</h2>\n" 
    . "<p>You did not select an answer</p>\n" 
    . "</li>\n"; 
} 
else { 
    echo"<li>\n<h2>1. " . $q1[0] . "</h2>\n" 
    . "<p><strong>" . $q1[$a1] . ":</strong></p>\n" 
    . "<p>" . $r1[$a1] . "</p>\n" 
    . "</li>\n"; 
} 

使用empty而不是null檢查

0

'空' 不與false相同或''。'null'是一個對象。

0

在PHP中,空字符串($ A)&空數組($ b)如果你測試以下快遞將返回true:

$ a = ''; $ b = array();

$一個== NULL - > TRUE $ B == NULL - > TRUE

$ A == 0 - > TRUE

所以,你應該用「= =='來測試,或者你的代碼中總會有意想不到的結果。