PHP class array error

PHP class array error

问题描述:

我写过一个类,它查看电子邮件的不同部分。一个功能是通过检查文件名是否存在于其属性数组中来确定每个部分是否为文件。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 

第一个错误是因为$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