2017-12-18 165 views
1

我寫過一個類,它查看電子郵件的不同部分。一個功能是通過檢查文件名是否存在於其屬性數組中來確定每個部分是否爲文件。PHP class array error

我檢查的樣子:

if (array_key_exists("filename",$body_part->d_parameters)) { 
    // do stuff 
} 

,但我一直因爲在案件中獲得我的日誌此錯誤的部分不是一個文件(標題,正文等)不存在所謂的「文件名數組鍵「。

PHP Notice: Undefined property: stdClass::$d_parameters in mail.php 
PHP Warning: array_key_exists() expects parameter 2 to be array, null given in mail.php 

回答

1

第一個錯誤是因爲$body_part->d_parameters在您引用它時不存在。

第二個錯誤是因爲$body_part->d_parameters不是當你把它傳遞給array_key_exists()

解決方案的數組:試圖將對象屬性傳遞到功能之前使用isset()is_array()

if (isset($body_part->d_parameters) and is_array($body_part->d_parameters) and array_key_exists("filename",$body_part->d_parameters)) { 
    // do stuff 
} 
+1

爲什麼這是downvoted? – War10ck

+0

我在一分鐘後添加了更多文本,但也許是因爲我回答了一個相對基本的PHP問題? – Scuzzy

+1

不用擔心,我也不太清楚,但是我會努力。然而,使用'空'你可以寫一個簡潔的條件語句:http://sandbox.onlinephpfunctions.com/code/7edb569af95a08d0ed71fcc3e26aa783fbbadf49 – HPM