PHP类数组错误

问题描述 投票:1回答:1

我写了一个查看电子邮件不同部分的课程。一个功能是通过检查文件名是否存在于其属性数组中来确定每个部件是否是文件。

我的支票看起来像:

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

但是我在日志中不断收到此错误,因为在部件不是文件(标题,正文等)的情况下,没有名为“filename”的数组键。

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
php arrays class
1个回答
1
投票

第一个错误是因为引用它时$body_part->d_parameters不存在。

第二个错误是因为$body_part->d_parameters在将它传递给array_key_exists()时不是数组

解决方案:在尝试将object属性传递给函数之前,请使用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
}
© www.soinside.com 2019 - 2024. All rights reserved.