Ответ 1
Вы можете изучить две статьи, описывающие этот пример.
Во-первых, здесь высокий уровень. Есть две внешние циклы. Первый отвечает за очистку буфера curl прямо сейчас. Второй отвечает за ожидание дополнительной информации, а затем за ее получение. Это пример того, что называется блокировкой ввода/вывода. Мы блокируем выполнение остальной части программы до завершения сетевого ввода-вывода. Хотя в целом это не самый предпочтительный способ управления сетевым вводом-выводом, на самом деле это наш единственный выбор в однопоточном синхронном PHP.
Правильно делать curl_multi_exec
Сначала переменная
$mrc
и из руководства мы узнаем, что ответом является код cURL, определенный в предопределенных константах cURL. По сути, это обычный ответ, и, как и с любой другой функцией PHP,curl_multi_exec
ничем не отличается и возвращает ответ только после его завершения. Что означает, что должен быть только ОДИН ответ. В идеальном мире этот единственный ответ равен 0 (нулю) или равен предварительно определенной константеCURLM_OK
.