PHP使用new StdClass()创建空对象的方法分析


Posted in PHP onJune 06, 2017

本文实例讲述了PHP使用new StdClass()创建空对象的方法。分享给大家供大家参考,具体如下:

PHP可以用 $object = new StdClass(); 创建一个没有成员方法和属性的空对象。

很多时候,程序员们会将一些参数配置项之类的信息放在数组中使用,但是数组操作起来并不是很方便,很多时候使用对象操作符->xxx比数组操作符['xxx']要方便不少。于是就需要创建一个空的对象,来将需要的属性名和属性值存储到对象中。

然而PHP中没有Javascript里面 var object = {}; 这样的语法。

PHP创建空对象至少可以使用3种方法实现

方法一:写一个空类

勉强能完成任务,但是特别没有格局。

<?php
  class cfg {
  }
  $cfg = new cfg;
  $cfg->dbhost = '3water.com';
  echo $cfg->dbhost;
?>

方法二:实例化 StdClass 类

StdClass类是PHP中的一个基类,然而比较诡异的是PHP手册里面血几乎没有提到过这个类,至少在PHP索引中是搜索不到这个类的。

StdClass类没有任何成员方法,也没有任何成员属性,实例化以后就是一个空对象。

<?php
  $cfg = new StdClass();
  $cfg->dbhost = '3water.com';
  echo $cfg->dbhost;
?>

方法三:折腾json_encode()和json_decode()

这种方法就是把一个空的JSON对象通过json_decode()转变为PHP的StdClass空对象。

同样的道理,你可以将一个数组通过json_encode()转成JSON,再通过json_decode()将JSON转为StdClass对象,

关于这两个函数,可以参考PHP手册。

<?php
  $cfg = json_decode('{}');
  $cfg->dbhost = '3water.com';
  echo $cfg->dbhost;
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php 设计模式之 单例模式
Dec 19 PHP
PHP获取类中常量,属性,及方法列表的方法
Apr 09 PHP
通过具体程序来理解PHP里面的抽象类
Jan 28 PHP
PHP5与MySQL数据库操作常用代码 收集
Mar 21 PHP
php 仿Comsenz安装效果代码打包提供下载
May 09 PHP
php实现的树形结构数据存取类实例
Nov 29 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
Jan 03 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
Jan 09 PHP
php array_multisort 对数组进行排序详解及实例代码
Oct 27 PHP
PHP基于新浪IP库获取IP详细地址的方法
May 04 PHP
PHP实现的装箱算法示例
Jun 23 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
Jan 25 PHP
php 7新特性之类型申明详解
Jun 06 #PHP
thinkPHP+phpexcel实现excel报表输出功能示例
Jun 06 #PHP
PHP实现RSA签名生成订单功能【支付宝示例】
Jun 06 #PHP
PHP实现的激活用户注册验证邮箱功能示例
Jun 06 #PHP
PHP实现向关联数组指定的Key之前插入元素的方法
Jun 06 #PHP
PHP培训要多少钱
Jun 06 #PHP
Mac系统完美安装PHP7详细教程
Jun 06 #PHP
You might like
php利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
PHP中批量生成静态html(命令行下运行PHP)
2014/04/19 PHP
php微信开发之批量生成带参数的二维码
2016/06/26 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
2017/03/23 PHP
自己动手制作jquery插件之自动添加删除行的实现
2011/10/13 Javascript
JavaScript在XHTML中的用法详解
2013/04/11 Javascript
JQuery each()嵌套使用小结
2014/04/18 Javascript
完美兼容各大浏览器获取HTTP_REFERER方法总结
2014/06/24 Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
2015/12/13 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
JS回调函数简单用法示例
2017/02/09 Javascript
Jquery-data的三种用法
2017/04/18 jQuery
vue+vue-validator 表单验证功能的实现代码
2017/11/13 Javascript
详解微信小程序input标签正则初体验
2018/08/18 Javascript
Vue props 单向数据流的实现
2018/11/06 Javascript
js根据需要计算数组中重复出现某个元素的个数
2019/01/18 Javascript
JavaScript监听一个DOM元素大小变化
2020/04/26 Javascript
js正则表达式简单校验方法
2021/01/03 Javascript
[01:11]steam端dota2实名认证操作流程视频
2021/03/11 DOTA
完美解决Python2操作中文名文件乱码的问题
2017/01/04 Python
非递归的输出1-N的全排列实例(推荐)
2017/04/11 Python
实例讲解Python3中abs()函数
2019/02/19 Python
python实现视频分帧效果
2019/05/31 Python
基于Tensorflow批量数据的输入实现方式
2020/02/05 Python
python实现测试工具(一)——命令行发送get请求
2020/10/19 Python
python将下载到本地m3u8视频合成MP4的代码详解
2020/11/24 Python
python录音并调用百度语音识别接口的示例
2020/12/01 Python
python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解
2021/01/26 Python
深入浅析css3 中display box使用方法
2015/11/25 HTML / CSS
韩国三大免税店之一:THE GRAND 中文免税店
2016/07/21 全球购物
阳光体育:Sunny Sports(购买露营和远足设备)
2018/08/07 全球购物
工程部主管岗位职责
2013/11/17 职场文书
企业法人代表任命书
2014/06/06 职场文书
男人帮观后感
2015/06/18 职场文书
详解JavaScript中的执行上下文及调用堆栈
2021/04/29 Javascript
《艾尔登法环》Boss腐烂树灵很有可能是《黑暗之魂3》的一个废案
2022/04/11 其他游戏