前言
通常我们会将一些配置信息放在数组中,但是有时候数组不太方便,用对象操作$res->name要比$res['name']方便,或者客户端要求返回一个对象而非JSON,所以就需要创建一个空对象。
正文
PHP创建空对象有以下几种方法:
创建一个空类
通过写一个空类,然后实例化,这样就得到了一个没有属性和方法的空对象。<?php
class emptyClass{}
$obj = new emptyClass;
$obj->name = "Bob";
$obj->age = 23;
var_dump($obj);
输出如下:object(emptyClass)#1 (2) { ["name"]=> string(3) "Bob" ["age"]=> int(23) }
但是这个方法代码冗余,不优雅。
通过json_decode函数
通过使用json_decode()将一个空的JSON对象转成PHP的STDClass的对象。<?php
$obj = json_decode("{}");
$obj->name = "Bob";
$obj->age = 23;
var_dump($obj);
输出如下:object(stdClass)#2 (2) { ["name"]=> string(3) "Bob" ["age"]=> int(23) }
这个方法利用了额外的函数和输入。
通过实例化StdClass类
StdClass类是PHP中的一个基类,StdClass类没有任何成员方法,也没有任何成员属性,实例化以后就是一个空对象。<?php
$obj = new StdClass();
$obj->name = "Bob";
$obj->age = 23;
var_dump($obj);
输入如下:object(stdClass)#1 (2) { ["name"]=> string(3) "Bob" ["age"]=> int(23) }
这个方法使用了PHP自带的StdClass类。StdClass类在PHP内核进行初始化时会自动加载,所以我们可以在任何时候使用。
总结生成一个空对象,推荐使用第3种方法;
或者可以先用数组,然后再转成对象;
参考
转载声明:本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动。
欢迎捐赠赞赏