【问题标题】:Speed increase by fixing notices regarding arrays?通过修复有关阵列的通知来提高速度?
【发布时间】:2015-03-11 04:32:56
【问题描述】:

我有一个 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 个左右的数组 push 是否值得?

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

【问题讨论】:

    标签: php arrays execution-time


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-04-25
      • 2012-09-21
      • 2013-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多