如何根据条件向json_encode函数添加多个选项?

问题描述 投票:0回答:1

没关系:

$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
1个回答
0
投票

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

JSON_UNESCAPED_UNICODEJSON_PRETTY_PRINT是整数。|运算符将两个整数位掩码合并在一起。因此,要加入它们,您应该只使用$options |= JSON_PRETTY_PRINT,并且不应使用引号。

$options = JSON_UNESCAPED_UNICODE;
if ($pretty) $options |= JSON_PRETTY_PRINT;
$data = json_encode(
    $data,
    $options
);
© www.soinside.com 2019 - 2024. All rights reserved.