Yev*_*yev 1 php json laravel laravel-blade
我注意到,laravel 刀片@json($list)指令(https://laravel.com/docs/7.x/blade)
正在转换为
<?php echo json_encode($list, 15, 512) ?>
Run Code Online (Sandbox Code Playgroud)
什么是15?
我在可用选项中没有看到此选项
选项位掩码包括JSON_FORCE_OBJECT,JSON_HEX_QUOT,JSON_HEX_TAG,JSON_HEX_AMP,JSON_HEX_APOS,JSON_INVALID_UTF8_IGNORE,JSON_INVALID_UTF8_SUBSTITUTE,JSON_NUMERIC_CHECK,JSON_PARTIAL_OUTPUT_ON_ERROR,JSON_PRESERVE_ZERO_FRACTION,JSON_PRETTY_PRINT,JSON_UNESCAPED_LINE_TERMINATORS,JSON_UNESCAPED_SLASHES,JSON_UNESCAPED_UNICODE,JSON_THROW_ON_ERROR的。
PS您可以尝试解码更多这样的指令
{{ '@json($list)'}}
Run Code Online (Sandbox Code Playgroud)
这是OR ing 这些选项的结果:
JSON_HEX_QUOT | JSON_HEX_APOS | JSON_HEX_AMP | JSON_HEX_TAG
Run Code Online (Sandbox Code Playgroud)
15是1111二进制的,转储我们可以看到的所有 JSON 常量
foreach (get_defined_constants() as $c => $v) {
if (substr($c, 0, 4) !== "JSON") continue;
echo "$c ".decbin($v)."\n";
}
Run Code Online (Sandbox Code Playgroud)
那
JSON_HEX_TAG 1
JSON_HEX_AMP 10
JSON_HEX_APOS 100
JSON_HEX_QUOT 1000
...
Run Code Online (Sandbox Code Playgroud)
这些选项组合在一起给出结果数字1111或15十进制。
| 归档时间: |
|
| 查看次数: |
56 次 |
| 最近记录: |