У меня есть PHP-скрипт, который выполняет различные вызовы API Instagram, а затем назначает их массивам для отображения позже.
Это делает так:
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, а не просто скрытие уведомлений? Сценарий работает в обоих направлениях, как задумано, но я нахожусь на стадии, когда я хочу максимально оптимизировать его. Стоит ли писать 10 или около того толчков массива в операторе IF?
Моя первоначальная интуиция была бы отрицательной, так как она все равно добавляет один элемент в массив в любом случае. Однако я не знаю, как PHP обрабатывает ошибки за кулисами, и добавляет ли этот процесс дополнительное время или нет.
Оказывается, выполнение оператора IF действительно намного быстрее.
После некоторого тестирования я смог эффективно удвоить скорость скрипта, проверив значение, прежде чем пытаться присвоить его
Независимо от того, как установлен отчет об ошибках, в фоновом режиме PHP по-прежнему генерирует и форматирует сообщение уведомления. Таким образом, независимо от того, отображается ли он на экране, он по-прежнему тратит время и ресурсы на создание этих ошибок, что, по-видимому, сильно затягивает время.
Других решений пока нет …