PHP convet class to json data

本文介绍了如何将PHP中的类实例转换为JSON数据格式,并解决了在类构造过程中初始化对象时出现的语法错误问题。通过示例代码展示了正确的初始化方法。
/*********************************************************************
 *              PHP convet class to json data
 * 说明:
 *     突然想使用class自动转换为json数据,这样的代码可扩展性会好一点,
 * 只需要修改class的属性就能够达到最终json数据输出,不过有遇到class中
 * 初始化class变量需要在构造函数中初始化的的问题。
 *
 *                                   2017-8-11 深圳 龙华樟坑村 曾剑锋
 ********************************************************************/


一、参考文档:
    1. getting Parse error: syntax error, unexpected T_NEW [closed]
        https://stackoverflow.com/questions/15806981/getting-parse-error-syntax-error-unexpected-t-new

二、测试代码:
    <?php
        class Uart {
            public $port = "/dev/ttyO0";
            public $value = "OK";
        }

        class Context {
            public $uart = new Uart();;
            public $version = "v0.0.1";
        }

        $context = new Context;

        $context_json = json_encode($context);
        echo $context_json
    ?>

三、报错内容:
    Parse error: syntax error, unexpected 'new' (T_NEW) in /usr/share/web/time.php on line 8

四、最终代码:
    <?php
        class Uart {
            public $port = "/dev/ttyO0";
            public $value = "OK";
        }

        class Context {
            public $uart;
            public $version = "v0.0.1";

            public function __construct() {
                $this->uart = new Uart();
            }
        }

        $context = new Context;

        $context_json = json_encode($context);
        echo $context_json
    ?>

五、输出结果:
    {"uart":{"port":"\/dev\/ttyO0","value":"OK"},"version":"v0.0.1"}

六、原因:
    you must do initialize new objects in the __construct function;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值