分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

对象转换成JSON字符串

发布时间:2023-09-06 02:02责任编辑:熊小新关键词:暂无标签

定义一个Student类:

1 class Student {2 ????public $name;3 ????public $age;4 ????function __construct($name, $age) {5 ????????$this->name = $name;6 ????????$this->age = $age;7 ????}8 }

此时new一个对象并直接echo: 1 $person1 = new Student(‘jack‘, 20); 2 echo $person1; 

结果并没有按照我们预想的那样打印出该对象而是报了一个致命错误:

意为Student类实例化出来的对象不能转化成字符串,此处可以得到一个信息即:echo 后面必须是字符串,

否则会将其自动转化为字符串,那么如何讲一个对象转换为一个字符串呢?

先介绍一个魔术方法:__tostring(),这个方法用于一个类被当成字符串时应怎样回应。例如 echo $obj; 

应该显示些什么。此方法必须返回一个字符串,否则将发出一条 E_RECOVERABLE_ERROR 级别的致命错误。

将这个魔术方法添加到Student类中:

 1 class Student { 2 ?????public $name; 3 ?????public $age; 4 ?????function __construct($name, $age) { 5 ??????????$this->name = $name; 6 ??????????$this->age = $age; 7 ?????} 8 ?????function __tostring() { 9 ??????????return json_encode($this, JSON_FORCE_OBJECT);10 ?????}11 }

json_encode(value, options)方法可以将一个对象转换为JSON字符串,此方法接受两个参数,

第一个参数:value 
待编码的 value ,除了resource 类型之外,可以为任何数据类型 
该函数只能接受 UTF-8 编码的数据 

第二个参数:options 
由以下常量组成的二进制掩码: JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT, JSON_UNESCAPED_UNICODE. 

返回值:编码成功则返回一个以 JSON 形式表示的 string 或者在失败时返回 FALSE 。

note:与json_encode方法相对的有json_decode方法,此方法可以将一个JSON格式的字符串转化为PHP变量,此方法接受两个参数

      第一个参数:json字符串

      第二个参数:true/false,为true时表示将字符串准换位数组,为false时则表示转换为对象,默认为false

      返回值:对象或数组(第二个参数为为true时)

此时在浏览器打开可以看到转换成功:

对象转换成JSON字符串

原文地址:https://www.cnblogs.com/luoge-Snippet/p/9270176.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved