2011-11-29 46 views
1

我使用Zend_Form子類,以傳遞數據的陣列到我的控制器和有時我需要在控制器一些額外的邏輯空,因爲這樣的:檢查是否一個數組值也不是沒有PHP警告

$post = $request->getPost(); 
if (array_key_exists('signatureData', $post) && !empty($post['signatureData'])) { 
    ... 
} 

要避免獲得PHP警告,首先,我需要檢查是否存在signatureData鍵,只有這樣我才能檢查該值是否爲空。

無論如何,我可以使這個IF語句短一點,而不添加自定義PHP功能?

回答

1

使用ZF,使用

If ($request->getParam('signatureData', false)) 

最佳實踐IMO

5

接受的標準:

if (isset($post['signatureData']) && !empty($post['signatureData'])) 

顯然,這也是可能的:

if (!empty($post['signatureData'])) 

CNC中

如果你真懶,有一個骯髒的方式:

if (@$post['signatureData']) 

我推薦儘管結束它。

正如在評論中指出的那樣,不要實際使用這個。這是壞的,壞的,壞的壞的,壞的。真的,請不要使用它。這只是作爲參考。

+0

心不是一個空的檢查就夠了嗎?如果鍵不存在,則空檢查將返回true,如果鍵存在但不包含值,則空也將返回true。 – Julien

+0

@Julien - 這是不夠的,因爲如果未設置$ post ['signatureData']',它會引發未定義索引的通知。我也會將「骯髒的方式」作爲一種可能性去除,因爲它是一種窮人的技術來創造一種習慣。 – nickb

+0

它還會給出一個'Notice:'關於檢查未定義索引的警告。 –

相關問題