通过修复有关阵列的通知来提高速度


Speed increase by fixing notices regarding arrays?

我有一个PHP脚本,它对Instagram的API进行各种调用,然后将它们分配给数组以供以后显示。

它是这样做的:

array_push($this->url_array, $result->data[$i]->link);

它对多个字段执行相同的操作。

现在,由于并非每个返回的帖子都会具有所有相同的数据,因此我经常收到这样的通知:

Notice: Undefined offset: 2

我可以使用以下代码轻松删除这些

if($result->data[$i]->link != NULL)
{
  array_push($this->url_array, $result->data[$i]->link)
}
else
{
   array_push($this->url_array, NULL);
}

我需要始终在那里有一些值,否则它会在以后显示表格时搞砸,因为我生成的每个数组都需要具有相同的长度。

我的问题是,我会看到使用 IF 语句而不是仅仅隐藏通知的速度改进吗?该脚本以两种方式按预期工作,但我正处于希望尽可能优化它的阶段。在 IF 语句中写入 10 个左右的数组推送是否值得?

我最初的直觉是否定的,因为无论哪种情况,它仍然会向数组添加一个元素。但是,我不知道PHP如何在幕后处理错误,以及该过程是否增加了额外的时间。

事实证明,执行 IF 语句确实要快得多。

经过一些测试,我能够通过在尝试分配之前检查值来有效地将脚本的速度加倍

无论错误报告如何设置,PHP 在后台仍然会生成并格式化通知消息。因此,无论它是否显示在屏幕上,它仍然花费时间和资源来创建这些错误,这似乎是对时间的严重拖累。