simdjson_decode Décode une chaîne JSON &reftitle.description; mixedsimdjson_decode stringjson boolassociative&false; intdepth512 Prend une chaîne encodée en JSON et la convertit en une valeur PHP. Cela utilise une Instruction Simultanée plus Rapide, Données Multiples (Simultaneous Instruction, Multiple Data - SIMD) que json_decode lorsqu'elle est prise en charge par l'architecture de l'ordinateur. &reftitle.parameters; json Le string json à décoder. Cette fonction ne fonctionne qu'avec des chaînes encodées en UTF-8. Cette fonction analyse les entrées valides que json_decode peut décoder, à condition qu'elles soient inférieures à 4 Go de longueur. associative Lorsque &true;, les objets JSON seront retournés sous forme de &array; associatifs ; lorsqu'ils sont &false;, les objets JSON seront retournés sous forme d'&object;s. depth La profondeur maximale de la structure à décoder. La valeur doit être supérieure à 0, et inférieure ou égale à 2147483647. Ceux qui appellent cette fonction devraient utiliser des valeurs raisonnablement petites, car des profondeurs plus importantes nécessitent plus d'espace tampon et augmenteront la profondeur de récursion, contrairement à l'implémentation actuelle de json_decode. &reftitle.returnvalues; Renvoie la valeur encodée dans json dans le type PHP approprié. Les valeurs true, false et null sont renvoyées respectivement comme &true;, &false; et &null;. &reftitle.errors; Si json est invalide, une SimdJsonException est lancée à partir de PECL simdjson 2.1.0, alors qu'auparavant, une RuntimeException était lancée. Si depth est en dehors de la plage autorisée, une SimdJsonValueError est lancée à partir de PECL simdjson 3.0.0, alors qu'auparavant, une erreur de niveau E_WARNING était lancée. &reftitle.examples; Exemples de <function>simdjson_decode</function> ]]> &example.outputs; int(1) ["b"]=> int(2) ["c"]=> int(3) } array(3) { ["a"]=> int(1) ["b"]=> int(2) ["c"]=> int(3) } ]]> Accéder à des propriétés d'objet non valides Accéder à des éléments dans un objet qui contiennent des caractères non autorisés par la convention de nommage de PHP (par exemple, le trait d'union) peut être accompli en encapsulant le nom de l'élément entre des accolades et des apostrophes. {'foo-bar'}; // 12345 ?> ]]> Erreurs courantes lors de l'utilisation de <function>simdjson_decode</function> ]]> Erreurs de <parameter>depth</parameter> array -> array -> string) $json = json_encode( [ 1 => [ 'English' => [ 'One', 'January' ], 'French' => [ 'Une', 'Janvier' ] ] ] ); // Afficher les erreurs pour différentes profondeurs. var_dump(simdjson_decode($json, true, 4)); try { var_dump(simdjson_decode($json, true, 3)); } catch (SimdJsonException $e) { echo "Caught: ", $e->getMessage(), "\n"; } ?> ]]> &example.outputs; array(2) { ["English"]=> array(2) { [0]=> string(3) "One" [1]=> string(7) "January" } ["French"]=> array(2) { [0]=> string(3) "Une" [1]=> string(7) "Janvier" } } } Caught: The JSON document was too deep (too many nested objects and arrays) ]]> <function>simdjson_decode</function> de grands entiers ]]> &example.outputs; float(1.2345678901235E+19) } ]]> &reftitle.notes; La spécification JSON n'est pas JavaScript, mais un sous-ensemble de JavaScript. Dans le cas où le décodage échoue, une SimdJsonException est lancée et SimdJsonException::getCode et SimdJsonException::getMessage peuvent être utilisés pour déterminer la nature exacte de l'erreur. &reftitle.seealso; json_encode json_decode