📅  最后修改于: 2023-12-03 15:33:29.860000             🧑  作者: Mango
在Web开发中,前后端数据传输是非常常见的场景。而JSON就是一种轻量级的数据交互格式,被广泛应用在前后端的数据传输中。而PHP提供了一个内置函数json_encode
来帮助我们将PHP变量转化为JSON格式字符串,方便前后端数据传输。
json_encode(mixed $value, int $options = 0, int $depth = 512) : string
该函数接收三个参数:
mixed $value
:表示要编码的PHP变量。int $options
:表示编码时的选项。可选参数,如果不传递该参数,则默认为0。int $depth
:表示编码深度。可选参数,如果不传递该参数,则默认为512。该函数返回编码后的JSON格式字符串,如果出现错误,则返回false。
//PHP数组
$data = array(
'name' => '张三',
'age' => 18,
'email' => 'zhangsan@qq.com',
);
//将PHP数组转化为JSON格式字符串
$json_data = json_encode($data);
echo $json_data;
输出结果如下:
{
"name": "张三",
"age": 18,
"email": "zhangsan@qq.com"
}
json_encode
函数还提供了丰富的选项参数,可以让我们更加灵活地控制编码的结果。
JSON_PRETTY_PRINT
该选项参数可以让编码后的结果格式化输出,易于阅读。
//PHP数组
$data = array(
'name' => '张三',
'age' => 18,
'email' => 'zhangsan@qq.com',
);
//将PHP数组转化为JSON格式字符串,并进行格式化输出
$json_data = json_encode($data, JSON_PRETTY_PRINT);
echo $json_data;
输出结果如下:
{
"name": "张三",
"age": 18,
"email": "zhangsan@qq.com"
}
JSON_UNESCAPED_UNICODE
该选项参数可以让编码后的结果中的中文字符不进行Unicode编码,保持原样输出。
//PHP数组
$data = array(
'name' => '张三',
'age' => 18,
'email' => 'zhangsan@qq.com',
);
//将PHP数组转化为JSON格式字符串,并保持中文字符原样输出
$json_data = json_encode($data, JSON_UNESCAPED_UNICODE);
echo $json_data;
输出结果如下:
{
"name": "张三",
"age": 18,
"email": "zhangsan@qq.com"
}
JSON_NUMERIC_CHECK
该选项参数可以让编码后的结果中的数值类型强制转化为数值类型,而不是字符串类型。
//PHP数组
$data = array(
'name' => '张三',
'age' => 18,
'weight' => '55.5kg',
);
//将PHP数组转化为JSON格式字符串,并强制转化数值类型
$json_data = json_encode($data, JSON_NUMERIC_CHECK);
echo $json_data;
输出结果如下:
{
"name": "张三",
"age": 18,
"weight": 55.5
}
json_encode
函数是PHP中非常有用的一个函数,用来将PHP变量转化为JSON格式字符串,方便前后端数据传输。而且该函数提供了丰富的选项参数,可以让我们更好地控制编码后的结果。