Heim > Backend-Entwicklung > PHP-Tutorial > Warum gibt „json_encode' manchmal Zahlen als Strings zurück und wie kann ich das verhindern?

Warum gibt „json_encode' manchmal Zahlen als Strings zurück und wie kann ich das verhindern?

Linda Hamilton
Freigeben: 2024-12-03 06:13:16
Original
798 Leute haben es durchsucht

Why Does `json_encode` Sometimes Return Numbers as Strings, and How Can I Prevent This?

json_encode Strings vs. Numbers

Bei Verwendung der PHP-Funktion json_encode kann es zu einem Problem kommen, bei dem Zahlen als Strings codiert werden. Dies kann bei der Arbeit mit JavaScript zu unerwartetem Verhalten führen, da Zeichenfolgen nicht für numerische Operationen verwendet werden können.

Das Problem verstehen

Zum Beispiel, wenn Sie ein Array wie Dies:

array('id' => 3)
Nach dem Login kopieren

json_encode gibt die folgende JSON-Zeichenfolge aus:

"{ ["id": "3", ...)
Nach dem Login kopieren

Beachten Sie das Die Eigenschaft „id“ ist in Anführungszeichen gesetzt und gibt einen Zeichenfolgenwert an. Wenn JavaScript auf diese Zeichenfolge stößt, interpretiert es sie als solche und alle daran durchgeführten numerischen Berechnungen schlagen fehl.

Verhindern der Zeichenfolgencodierung

Um dieses Problem zu beheben, können Sie Folgendes verwenden: das JSON_NUMERIC_CHECK-Flag beim Aufruf von json_encode. Dieses Flag weist PHP an, Zahlen vor dem Codieren automatisch in numerische Werte umzuwandeln.

$arr = array( 'row_id' => 1, 'name' => 'George' );
echo json_encode( $arr, JSON_NUMERIC_CHECK );
Nach dem Login kopieren

Dies wird Folgendes ausgeben:

{"row_id":1,"name":"George"}
Nach dem Login kopieren

Mit dem JSON_NUMERIC_CHECK-Flag ist die row_id-Eigenschaft jetzt eine echte Zahl. So können Sie problemlos numerische Operationen in JavaScript ausführen.

Das obige ist der detaillierte Inhalt vonWarum gibt „json_encode' manchmal Zahlen als Strings zurück und wie kann ich das verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage