繁体   English   中英

如何按条件向 json_encode function 添加多个选项?

[英]How to add multiple options to json_encode function by condition?

没关系:

$data = json_encode(
    $data,
    JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT
);

我想这样做:

$options = "JSON_UNESCAPED_UNICODE";
if ($pretty) $options .= " | JSON_PRETTY_PRINT";
$data = json_encode(
    $data,
    $options
);

但这不起作用,因为 $options 不是字符串或数组。

怎么做?

PHP 不是 Bash。 代码和字符串是正交的概念。

JSON_UNESCAPED_UNICODEJSON_PRETTY_PRINT是整数。 | 运算符加入两个 integer 位掩码。 所以加入他们你应该只是$options |= JSON_PRETTY_PRINT ,并且不应该使用引号。

$options = JSON_UNESCAPED_UNICODE;
if ($pretty) $options |= JSON_PRETTY_PRINT;
$data = json_encode(
    $data,
    $options
);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM