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 删除数组元素
Jan 16 PHP
基于PHP文件操作的详细诠释
Jun 21 PHP
浅谈使用 PHP 进行手机 APP 开发(API 接口开发)
Aug 11 PHP
PHP实现Javascript中的escape及unescape函数代码分享
Feb 10 PHP
完美解决phpexcel导出到xls文件出现乱码的问题
Oct 29 PHP
php利用gd库为图片添加水印
Nov 09 PHP
thinkPHP多表查询及分页功能实现方法示例
Jul 03 PHP
PHP读取、解析eml文件及生成网页的方法示例
Sep 04 PHP
PHP5.6新增加的可变函数参数用法分析
Aug 25 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
Sep 16 PHP
Yaf框架封装的MySQL数据库操作示例
Mar 06 PHP
深入分析PHP设计模式
Jun 15 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
CodeIgniter配置之routes.php用法实例分析
2016/01/19 PHP
PHP命名空间namespace的定义方法详解
2017/03/29 PHP
PHP实现电商订单自动确认收货redis队列
2017/05/17 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
PHP 实现 JSON 数据的编码和解码操作详解
2020/04/22 PHP
什么是json和jsonp,jQuery json实例详详细说明
2012/12/11 Javascript
javascript自定义in_array()函数实现方法
2015/08/03 Javascript
关于JS中prototype的理解
2015/09/07 Javascript
JS代码随机生成姓名、手机号、身份证号、银行卡号
2016/04/27 Javascript
浅谈js中的in-for循环
2016/06/28 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
2016/12/04 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
2017/02/18 Javascript
ES6正则的扩展实例详解
2017/04/25 Javascript
vue2.0使用swiper组件实现轮播的示例代码
2018/03/03 Javascript
react router4+redux实现路由权限控制的方法
2018/05/03 Javascript
javascript中数组的常用算法深入分析
2019/03/12 Javascript
微信小程序实现锚点功能
2019/11/20 Javascript
js实现小时钟效果
2020/03/25 Javascript
Python简明入门教程
2015/08/04 Python
Python 和 JS 有哪些相同之处
2017/11/23 Python
浅谈Python实现贪心算法与活动安排问题
2017/12/19 Python
浅谈Python协程
2020/06/17 Python
Java提供了哪些企业应用编程接口
2015/02/13 面试题
新学期红领巾广播稿
2014/01/14 职场文书
工程承包协议书
2014/04/22 职场文书
实习护士自荐信
2014/06/21 职场文书
班级学习雷锋活动总结
2014/07/04 职场文书
党员学习党的群众路线思想汇报(5篇)
2014/09/10 职场文书
学生检讨书
2015/01/27 职场文书
2015建军节87周年演讲稿
2015/03/19 职场文书
三十年同学聚会致辞
2015/07/28 职场文书
2016年基层党组织公开承诺书
2016/03/25 职场文书
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android
Spring Boot配合PageHelper优化大表查询数据分页
2022/04/20 Java/Android
ORACLE中dbms_output.put_line输出问题的解决过程
2022/06/28 Oracle
Win11 Dev 预览版25174.1000发布 (附更新修复内容汇总)
2022/08/05 数码科技