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初学者头疼十四条问题大总结
Nov 12 PHP
php 文件缓存函数
Oct 08 PHP
php无限分类且支持输出树状图的详细介绍
Jun 19 PHP
php生成缩略图填充白边(等比缩略图方案)
Dec 25 PHP
ThinkPHP采用原生query实现关联查询left join实例
Dec 02 PHP
windows中为php安装mongodb与memcache
Jan 06 PHP
php include类文件超时问题处理
Feb 06 PHP
php中文验证码实现方法
Jun 18 PHP
php根据用户语言跳转相应网页
Nov 04 PHP
php微信开发之谷歌测距
Jun 14 PHP
PHP耦合设计模式实例分析
Aug 08 PHP
Laravel用户授权系统的使用方法示例
Sep 16 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 函数执行效率的小比较
2010/10/17 PHP
php站内搜索关键词变亮的实现方法
2014/12/30 PHP
如何用PHP来实现一个动态Web服务器
2015/07/29 PHP
laravel中短信发送验证码的实现方法
2018/04/25 PHP
jquery下操作HTML控件的实现代码
2010/01/12 Javascript
JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探
2010/01/22 Javascript
Javascript公共脚本库系列(一): 弹出层脚本
2011/02/24 Javascript
JavaScript中的方法重载实例
2015/03/16 Javascript
基于BootStrap的图片轮播效果展示实例代码
2016/05/23 Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
2016/09/03 Javascript
Vue.js:使用Vue-Router 2实现路由功能介绍
2017/02/22 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
2017/08/17 jQuery
JavaScript实现省市联动过程中bug的解决方法
2017/12/04 Javascript
JavaScript之解构赋值的理解
2019/01/30 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
2020/09/02 Javascript
如何封装Vue Element的table表格组件
2021/02/06 Vue.js
解决python升级引起的pip执行错误的问题
2018/06/12 Python
Python利用itchat库向好友或者公众号发消息的实例
2019/02/21 Python
详解Python用户登录接口的方法
2019/04/17 Python
通过python检测字符串的字母
2020/02/18 Python
python用Configobj模块读取配置文件
2020/09/26 Python
猎人靴英国官网:Hunter Boots
2017/02/02 全球购物
切尔西足球俱乐部官方网上商店:Chelsea FC
2019/06/17 全球购物
DOM和JQuery对象有什么区别
2016/11/11 面试题
大学运动会通讯稿
2014/01/28 职场文书
教育技术学专业职业规划书
2014/03/03 职场文书
房屋租赁协议书范本
2014/04/10 职场文书
副科竞争上岗演讲稿
2014/05/12 职场文书
小学师德标兵先进事迹材料
2014/05/25 职场文书
2015年感恩父亲节演讲稿
2015/03/19 职场文书
民事诉讼代理词
2015/05/25 职场文书
房屋质量投诉书
2015/07/02 职场文书
升学宴家长答谢词
2015/09/29 职场文书
教师个人工作总结范文2015
2015/10/14 职场文书
使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
2021/04/07 HTML / CSS
oracle重置序列从0开始递增1
2022/02/28 Oracle