Yo personalmente creo que esto es un error que debe ser corregido en PHP. JSON_FORCE_OBJECT no es en absoluto una respuesta. Si intentas hacer algún tipo de programación genérica, te tropiezas constantemente.Por ejemplo, el siguiente es PHP válido:
matriz ("0" => matriz (0,1,2,3), "1" => matriz (4,5,6,7));
y se conviertan a
{ "0": [0,1,2,3], "1": [4,5,6,7]}
Sin embargo, PHP me espera ya sea a aceptar
[[0,1,2,3], [4,5,6,7]]
o
{ "0": { "0": 1," 1 ": 1," 2 ": 2," 3 ": 3}," 1 ": {" 0 ": 4," 1 ": 5," 2 ": 6," 3 ": 7}}
Ninguno de los cuales está bien. ¿Cómo puedo decodificar un objeto como ese? ¿Qué posible razón hay para cambiar alguna vez algo que claramente está usando cadenas como índices? Es como si PHP estuviera tratando de ser inteligente para ayudar a las personas idiotas que no pueden diferenciar las cadenas de los enteros, pero en el proceso arruinaron legítimamente el uso de cadenas como índices, sin importar en qué se pudiera convertir el valor.
no exactamente, recibo esta advertencia: Advertencia: json_encode() espera exactamente 1 parámetro, 2 dado .. – cupakob
Eso es extraño, es copiar y pegar del manual. –
"5.3.0 El parámetro de opciones fue agregado." – VolkerK