Esto es un error cuando usamos la matriz como una cadena en PHP. Hay dos situaciones en las que se produce este error.
escena uno
Estos escenarios son relativamente raros, y la mayoría de ellos son novatos, y es fácil encontrar y resolver errores. Literalmente, la matriz se usa como una cadena.
Ejemplo:
$ arr = array (0, 1, 2); // Error 1, las comillas dobles pueden analizar la variable, pero entre comillas dobles, se considerará una cadena. var_dump ("$ arr"); // error 2echo $ arr; 123456
En este caso, se devolverá el resultado:
Aviso de PHP: conversión de matriz a cadena en /path/test.php en la línea 5
Matriz
La solución es convertir la matriz en una cadena y usarla nuevamente: por ejemplo, use json_encode ($ arr);
Escena dos
Hay relativamente pocos escenarios de este tipo, y es difícil entender qué salió mal con solo mirar el mensaje Array to string conversion.
Cuando usamos curl, pasamos los parámetros a través de la publicación. Cuando el parámetro es una matriz bidimensional, se informa de este error, lo cual es sorprendente.
Ejemplo:
$ datos = matriz ([0], [1], [3]); $ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, $ url); curl_setopt ($ ch, CURLOPT_HEADER, FALSE); curl_setopt ($ ch , CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ ch, CURLOPT_POST, 1); // 报错 行 curl_setopt ($ ch, CURLOPT_POSTFIELDS, $ datos); $ resultado = curl_exec ($ ch); 1234567891011
La solución a este problema también es muy simple:
use http_build_query () para procesar los parámetros. Se recomienda usar http_build_query para todos los parámetros cuando se usa curl.
curl_setopt ($ ch, CURLOPT_POSTFIELDS, http_build_query ($ datos));