2016-04-20 28 views
-2

Im從我的數據庫中獲得一個整數,它是0或1.有了這些信息,我想更改一個字符串來表示Esea。這是我的代碼是不工作:PHP檢查var是0還是1,然後相應地打印

<?php 
$esea = ''; 

if (!empty($final_data['esea'])) { 
    $esea = 'Esea' 
} 

?> 

然後這是我打印:

<p><?php echo $esea ?></p> 
+4

注意'null'不是'0';你的標題說'空',你的問題談論'0'。雖然'empty()'函數應該將[0]和'null'作爲[相同](http://php.net/manual/en/function.empty.php)並返回true。你確定'$ final_data ['esea']'包含你期望的內容嗎?你[var_dump()'](http://php.net/manual/en/function.var-dump.php)嗎?你可以發佈'var_dump($ final_data ['esea']);''甚至是'var_dump($ final_data);''的輸出嗎? – RobIII

+0

您也可以執行嚴格的比較,如下所示:'if($ final_data ['esea'] === 1){//您的代碼}' –

+0

發佈php代碼哪個數據庫檢索部分 –

回答

2
$myvalue= ''; 

if (!empty($final_data['esea'])) { 
    $myvalue= 'Foo' 
} else { 
    $myvalue= 'Bar' 
} 

echo $myvalue; 

如果輸出Foo然後$final_data['esea']爲之一:

  • 「」(一個空字符串)
  • 0(0作爲整數)
  • 0.0(0爲float)
  • 「0」(0作爲字符串)
  • NULL
  • FALSE
  • 陣列()(空數組)

See the empty() documentation

如果輸出是Bar那麼$final_data['esea']不是上述值。

另請參閱評論herehere

還要注意的是,上面的代碼可以被改寫爲:

$myvalue= ''; 

if (empty($final_data['esea'])) { 
    $myvalue= 'Bar' 
} else { 
    $myvalue= 'Foo' 
} 

echo $myvalue; 

這是功能完全相同相同。唯一的區別是emtpy(...) v.s. !empty(...)(以及if/else交換中的邏輯)。

+0

謝謝@羅伯爾你是一個紳士和學者! – Tim

+0

我會跳過''''的初始任務,因爲無論如何你總是會覆蓋它...... – deceze

+0

@deceze在這個例子中,也許。但通常(並不總是)初始化變量是一個好主意。這樣,當你稍後重構你的代碼(並且可能刪除'else {...}'部分)時,你將不會引用一個未初始化的變量。話說回來;我來自C#背景,其中這樣的東西不僅僅是良好的實踐,甚至*需要*。不過,我確實認爲這適用於任何語言。另請參閱[文檔](http://php.net/manual/en/language.variables.basics.php):'*不需要在PHP中初始化變量,但這是一個非常好的做法(... )*' – RobIII

相關問題