PHP8.3には新機能が追加されます! (json_validate関数の説明)
この記事では、php8.3 に関する最新の関連情報をお届けします。主に、PHP8.3 に json_validate という関数が追加されることを紹介します。この関数はどのような用途に使われるのでしょうか?それの使い方?一緒に見てみましょう。皆さんのお役に立てれば幸いです。
PHP 8.3 プレビュー: `json_validate` 関数
PHP 8.3 では、渡された入力が正しいかどうかを検証するための json_validate という名前の関数が追加されます。 string は正当な JSON 文字列です。
現在、JSON 文字列を検証する一般的な方法は、JSON 文字列をデコードし、例外をキャッチして判断することです。ただし、場合によっては、特定のコンテンツを取得する必要はなく、それが合法であることの確認のみが必要な場合もあります。新しい json_validate 関数は、文字列をデコードせずに解析するだけなので、json_decode よりもメモリとリソースの消費が少なくなります。
関数シグネチャ
/** * 验证传入的字符串是否为合法 JSON 字符串 * * @param string $json 准备验证的字符串 * @param int $depth 最大嵌套深度,必须大于 0 * @param int $flags 标志掩码,用于指定行为 * @return bool $json 是合法 JSON 字符串时返回 true,否则返回 false */ function json_validate(string $json, int $depth = 512, int $flags = 0): bool {}
Flags
json_validate の 3 番目のパラメータは flags で、これは関数の動作を指定するために使用されます。関数 。現在、使用可能なフラグは JSON_INVALID_UTF8_IGNORE のみです。
このフラグは、PHP 7.2 で json_decode のフラグ定数として追加され、対応する文字列内の UTF-8 文字を無視するために使用されます。
json_validate('[1, 2, 3]', flags: JSON_INVALID_UTF8_IGNORE); // true json_validate("[\"\xc1\xc1\",\"a\"]"); // false json_validate("[\"\xc1\xc1\",\"a\"]", flags: JSON_INVALID_UTF8_IGNORE); // true
エラー処理
json_validate 自体はエラー コードを返しません。特定のエラー情報を取得したい場合は、json_last_error と json_last_error_msg を使用して取得できます。
json_validate(""); // false json_last_error(); // 4 json_last_error_msg(); // "Syntax error"
json_validate("null"); // true json_last_error(); // 0 json_last_error_msg(); // "No error"
例
文字列を検証して例外をスローします
if (json_validate($_GET['json']) === false) { throw new \JsonException(json_last_error_msg(), json_last_error()); }
前の検証メソッドを置き換えます
- $value = json_decode($_GET['json'], flags: JSON_THROW_ON_ERROR); + if (!json_validate($_GET['json'])) { + throw new \JsonException(json_last_error_msg(), json_last_error()); + } + $value = json_decode($_GET['json']);
Polyfill のプリエンプティブ適応
PHP 8.3 がリリースされたらすぐに json_validate にシームレスに切り替えることができるように、事前に PHP 8.3 に適応したい場合は、以前のバージョンの json_validate の動作を模倣する関数を手動で定義することができます。
if (!function_exists('json_validate')) { function json_validate(string $json, int $depth = 512, int $flags = 0): bool { if ($flags !== 0 && $flags !== \JSON_INVALID_UTF8_IGNORE) { throw new \ValueError('json_validate(): Argument #3 ($flags) must be a valid flag (allowed flags: JSON_INVALID_UTF8_IGNORE)'); } if ($depth <= 0 ) { throw new \ValueError('json_validate(): Argument #2 ($depth) must be greater than 0'); } \json_decode($json, null, $depth, $flags); return \json_last_error() === \JSON_ERROR_NONE; } }
この関数は引き続き内部で json_decode を使用するため、実際にはパフォーマンスの向上はありませんが、json_validate に似たインターフェイスが提供されるだけです。
推奨学習: 「PHP ビデオ チュートリアル 」
以上がPHP8.3には新機能が追加されます! (json_validate関数の説明)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。
