

Werfen Sie einen Blick auf die JSON-Fehlerbehandlung in der neuen Version von PHP 7.3
Hintergrund
Wenn Sie im aktuell stabilen PHP V7.2 feststellen möchten, dass der JSON ungültig ist, müssen Sie die Funktionsüberprüfung json_last_error() verwenden:
>>> json_decode("{"); => null >>> json_last_error(); => 4 >>> json_last_error() === JSON_ERROR_NONE => false >>> json_last_error_msg() => "Syntax error"
Hier ist zum Beispiel eine Prüfung in Larave, um sicherzustellen, dass der Aufruf der JSON-Kodierung nicht zu einem Fehler führt:
// Once we get the encrypted value we'll go ahead and base64_encode the input // vector and create the MAC for the encrypted value so we can then verify // its authenticity. Then, we'll JSON the data into the "payload" array. $json = json_encode(compact('iv', 'value', 'mac')); if (json_last_error() !== JSON_ERROR_NONE) { throw new EncryptException('Could not encrypt the data.'); } return base64_encode($json);
Wir können zumindest feststellen, ob ein Fehler in der JSON-Kodierung vorliegt /decoding, aber das ist im Vergleich zum Auslösen etwas umständlich. Eine Ausnahme gibt einen Fehlercode und eine Fehlermeldung aus.
Während Sie bereits Optionen zum Erfassen und Verarbeiten von JSON haben, wollen wir sehen, was die neue Version auf nette Weise leisten kann!
Auslösen von Fehlerflags in PHP 7.3
Mit dem neuen Optionsflag JSON_THROW_ON_ERROR ist es möglich, diesen Codeblock umzuschreiben, um Try/Catch zu verwenden.
Vielleicht so etwas:
use JsonException; try { $json = json_encode(compact('iv', 'value', 'mac'), JSON_THROW_ON_ERROR); return base64_encode($json); } catch (JsonException $e) { throw new EncryptException('Could not encrypt the data.', 0, $e); }
Ich denke, dieser neue Stil ist besonders nützlich für Benutzercode, wenn Sie JSON-Daten erhalten, anstatt nach json_last_error() zu suchen und Optionen für die JSON-Kodierung und -Dekodierung abzugleichen kann Fehlerhandler nutzen.
Diese json_decode()-Funktion benötigt ein paar Parameter und sieht aus wie PHP 7.3 und niedriger. Wenn Sie die Fehlerbehandlung nutzen möchten:
use JsonException; try { return json_decode($jsonString, $assoc = true, $depth = 512, JSON_THROW_ON_ERROR); } catch (JsonException $e) { // Handle the JSON Exception } // Or even just let it bubble up... /** * Decode a JSON string into an array * * @return array * @throws JsonException */ function decode($jsonString) { return json_decode($jsonString, $assoc = true, $depth = 512, JSON_THROW_ON_ERROR); }
Erhalten Sie den Fehlercode und den Fehler Nachricht
Zuvor haben Sie den JSON-Fehlercode und die JSON-Fehlermeldung mit der folgenden Funktion erhalten:
// Error code json_last_error(); // Human-friendly message json_last_error_msg();
Wenn Sie das neue JSON_THROW_ON_ERROR verwenden, erfahren Sie hier, wie Sie das verwenden Geben Sie den Code ein und erhalten Sie die Meldung:
try { return json_decode($jsonString, $assoc = true, $depth = 512, JSON_THROW_ON_ERROR); } catch (JsonException $e) { $e->getMessage(); // like json_last_error_msg() $e->getCode(); // like json_last_error() }

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)
