2014-08-28 65 views
1

我已將一個名爲$items的數組傳遞給我的視圖以打印它。請看:當php數組不爲空

<?php echo "<br>First print: " . $items;  

if ($items != null): 
    echo "<br>Second print: " . $items; 
php endif;?> 

最終輸出是:

首頁打印:數組

正如你所看到的,$items不爲空,但是,從來沒有打印的第二條消息。我的服務器有問題嗎?

編輯

我可以空函數評估$items,但我需要null comparator到evalute它,因爲這個變量可以爲空。

編輯2:

$items可以採取被傳遞給視圖時,可以取以下值:

  • 空:$items = null;
  • 陣列:$items = array();$items = array('a', 'b');
+0

使用的print_r或後續代碼var_dump而不是回聲。或者,如果你想回聲somestr.somearr使用它,而不是:echo「
第一次打印:」。print_r($ items,1); – bksi 2014-08-28 20:22:52

+0

我知道@bksi,我的觀點是'if'陳述。級聯僅用於調試porpuses。 – manix 2014-08-28 20:23:42

+0

'if(!empty($ items))' - 但我明白你的觀點。 – 2014-08-28 20:24:24

回答

1

如果你想與空最好是使用比較!==而不是!=

這種方式,您告訴PHP使用嚴格的對比,雙方應該是相同的(類型和值)

否則你可以得到錯誤的結果,如果數組是空的(例如)

針對PHP comparisions here

+0

謝謝!我非常感謝幫助。 – manix 2014-08-28 20:48:26

+1

你好。 – bksi 2014-08-28 20:50:00

4

如果PHP數組中沒有值,即count($array)0,與null比較時它給出true

確保您的陣列中至少有一個值。

+1

或使用嚴格比較('!==') – Clive 2014-08-28 20:34:29

+0

非常感謝!現在我明白在數組中使用'!='。謝謝。 – manix 2014-08-28 20:39:27