0

每当数组索引未定义时,PHP 都会返回一个“通知”。

如何关闭这些通知?或者更好,为他们正确编码?

例子:

$job_db_ready = array(
    "email" => $this->profile['email'],
    "company" => $job['company']['name'],
    "position" => $job['title'],
    "industry" => $job['company']['industry'],
    "start_date_month" => $job['startDate']['month'],
    "start_date_year" => $job['startDate']['year'],
    "end_date_month" => $job['endDate']['month'], // Sometimes endDate undefined
    "end_date_year" => $job['endDate']['year'],  // Sometimes endDate undefined
    "is_current" => $job['isCurrent']
);

该数组将返回

Severity: Notice
Message:  Undefined index: endDate
4

3 回答 3

1

1)更好的编码风格isset:在将变量分配给数组中的键之前,检查是否首先定义了变量。像这样

isset($job['endDate']['month']) // 做点什么

2)转向错误:在做一些奇怪的事情之前在你的脚本中使用它

错误报告(0);

1 推荐 2 不推荐

于 2013-08-11T23:47:35.820 回答
1

转告通知是一种不好的做法,因为它们会提醒您注意您可能犯的错误。相反,请检查它们是否已定义以及是否未分配默认值(包括 null 或空字符串):

"end_date_month" => (isset($job['endDate']['month']) ? $job['endDate']['month'] : ''), 
"end_date_year"  => (isset($job['endDate']['year'])  ? ($job['endDate']['year'] : ''), 
于 2013-08-11T23:47:46.467 回答
0

将以下内容放在 PHP 脚本的顶部:

error_reporting( 0 );

有关更多信息,请参阅PHP 文档上的error_reporting 。

于 2013-08-11T23:47:04.707 回答