对象转换成JSON字符串
2018-07-09 13:38:37来源:博客园 阅读 ()
定义一个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时)
此时在浏览器打开可以看到转换成功:
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:PHP基础4--函数-数组
下一篇:Laravel 生成二维码
- php判断是否为json格式的方法 2020-02-24
- PHP设计模式之工厂模式详解 2020-02-19
- 如何直接访问php实例对象中的private属性详解 2020-02-07
- PHP判断json格式是否正确的实现代码 2020-01-17
- PHP对象的浅复制与深复制的实例详解 2020-01-16
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash