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的宝库目录--PEAR
Oct 09 PHP
用PHP发电子邮件
Oct 09 PHP
Mysql中limit的用法方法详解与注意事项
Apr 19 PHP
phpmailer发送gmail邮件实例详解
Jun 24 PHP
php获取qq用户昵称和在线状态(实例分析)
Oct 27 PHP
php中将一段数据存到一个txt文件中并显示其内容
Aug 15 PHP
自编函数解决pathinfo()函数处理中文问题
Nov 03 PHP
php输出指定时间以前时间格式的方法
Mar 21 PHP
thinkphp实现图片上传功能
Jan 13 PHP
Symfony2函数用法实例分析
Mar 18 PHP
PHP使用递归算法无限遍历数组示例
Jan 13 PHP
php实现构建排除当前元素的乘积数组方法
Oct 06 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 __autoload函数(自动载入类文件)的使用方法
2012/02/04 PHP
PHP删除目录及目录下所有文件的方法详解
2013/06/06 PHP
简单了解WordPress开发中update_option()函数的用法
2016/01/11 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
比较搞笑的js陷阱题
2010/02/07 Javascript
解决Extjs4中form表单提交后无法进入success函数问题
2013/11/26 Javascript
javascript创建createXmlHttpRequest对象示例代码
2014/02/10 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
jquery dataview数据视图插件使用方法
2016/12/23 Javascript
canvas绘图不清晰的解决方案
2017/02/28 Javascript
JS解决IOS中拍照图片预览旋转90度BUG的问题
2017/09/13 Javascript
强大的JavaScript响应式图表Chartist.js的使用
2017/09/13 Javascript
关于在vue 中使用百度ueEditor编辑器的方法实例代码
2018/09/14 Javascript
使用webpack搭建vue项目实现脚手架功能
2019/03/15 Javascript
Vue中使用create-keyframe-animation与动画钩子完成复杂动画
2019/04/09 Javascript
vue打包npm run build时候界面报错的解决
2020/08/13 Javascript
python对html代码进行escape编码的方法
2015/05/04 Python
pymongo为mongodb数据库添加索引的方法
2015/05/11 Python
python编程实现归并排序
2017/04/14 Python
Python实现模拟分割大文件及多线程处理的方法
2017/10/10 Python
python实现机器人行走效果
2018/01/29 Python
详解PyTorch批训练及优化器比较
2018/04/28 Python
Python 忽略warning的输出方法
2018/10/18 Python
Python实现网站表单提交和模板
2019/01/15 Python
python实现动态数组的示例代码
2019/07/15 Python
PyCharm2018 安装及破解方法实现步骤
2019/09/09 Python
python字符串替换re.sub()方法解析
2019/09/18 Python
python 实现多维数组转向量
2019/11/30 Python
Python动态声明变量赋值代码实例
2019/12/30 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
2020/08/04 Python
关于python3.9安装wordcloud出错的问题及解决办法
2020/11/02 Python
如何让Java程序执行效率更高
2014/06/25 面试题
办公室文员工作自我评价
2013/12/01 职场文书
初婚未育证明
2014/01/15 职场文书
校企合作协议书
2014/04/16 职场文书
PyMongo 查询数据的实现
2021/06/28 Python