Еще одно существенное отличие, которое еще не упомянуто здесь, заключается в том, что CURLOPT_POSTFIELDS
не может обрабатывать вложенные массивы.
Если мы возьмем вложенный массив ['a' => 1, 'b' => [2, 3, 4]]
, тогда это должно быть параметризовано как a=1&b[]=2&b[]=3&b[]=4
([
и ]
будут / должны быть закодированы в URL).
Это будет работать:
var_dump(http_build_query(['a' => 1, 'b' => [2, 3, 4]]));
// output: string(36) "a=1&b%5B0%5D=2&b%5B1%5D=3&b%5B2%5D=4"
Это не будет отображаться на другом конце (в противном случае это будет PHP). work:
curl_setopt($ch, CURLOPT_POSTFIELDS, ['a' => 1, 'b' => [2, 3, 4]]);
Это даст вам уведомление. Выполнение кода будет продолжаться, и ваша конечная точка получит параметр b
в виде строки "Array"
:
PHP Примечание: массив для преобразования строк в ... on line ...
< / BLOCKQUOTE>