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调用Java对象的方法
Oct 09 PHP
5.PHP的其他功能
Oct 09 PHP
基于mysql的bbs设计(五)
Oct 09 PHP
二十行语句实现从Excel到mysql的转化
Oct 09 PHP
超强分页类2.0发布,支持自定义风格,默认4种显示模式
Jan 02 PHP
php 搜索框提示(自动完成)实例代码
Feb 05 PHP
使用dump函数,给php加断点测试
Jun 25 PHP
PHP 过滤页面中的BOM(实现代码)
Jun 29 PHP
php打开文件fopen函数的使用说明
Jul 05 PHP
解决ThinkPHP关闭调试模式时报错的问题汇总
Apr 22 PHP
PHP图形操作之Jpgraph学习笔记
Dec 25 PHP
Laravel学习教程之本地化模块
Aug 18 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+javascript液晶时钟
2006/10/09 PHP
php中ob(Output Buffer 输出缓冲)函数使用方法
2007/07/21 PHP
PDO版本问题 Invalid parameter number: no parameters were bound
2013/01/06 PHP
php编译安装php-amq扩展简明教程
2016/06/25 PHP
Laravel框架基于ajax实现二级联动功能示例
2019/01/17 PHP
Yii2.0建立公共方法简单示例
2019/01/29 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
2019/02/16 PHP
laravel5.6中的外键约束示例
2019/10/23 PHP
JavaScript 组件之旅(四):测试 JavaScript 组件
2009/10/28 Javascript
基于jQuery的输入框无值自动显示指定数据的实现代码
2011/01/24 Javascript
跨浏览器通用、可重用的选项卡tab切换js代码
2011/09/20 Javascript
JS中的构造函数详细解析
2014/03/10 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
2014/04/10 Javascript
javascript中一些util方法汇总
2015/06/10 Javascript
jquery实现简单的遮罩层
2016/01/08 Javascript
详解vuelidate 对于vueJs2.0的验证解决方案
2017/03/09 Javascript
前端开发之CSS原理详解
2017/03/11 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
2017/04/10 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
2017/06/05 Javascript
js编写简单的聊天室功能
2017/08/17 Javascript
详解关于element el-button使用$attrs的一个注意要点
2018/11/09 Javascript
Vue项目中使用jquery的简单方法
2019/05/16 jQuery
Emberjs 通过 axios 下载文件的方法
2019/09/03 Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
2019/10/11 Javascript
Python一行代码实现快速排序的方法
2019/04/30 Python
python中sklearn的pipeline模块实例详解
2020/05/21 Python
HTML5注册表单的自动聚焦与占位文本示例代码
2013/07/19 HTML / CSS
计算机专业大学生的自我评价
2013/11/14 职场文书
大学生创业计划书的格式要求
2013/12/29 职场文书
运动会方队口号
2014/06/07 职场文书
个人授权委托书样本
2014/09/13 职场文书
部队反四风对照检查材料
2014/09/26 职场文书
12.4法制宣传日标语
2014/10/08 职场文书
蜗居观后感
2015/06/11 职场文书
Idea连接MySQL数据库出现中文乱码的问题
2021/04/14 MySQL
MySql分区类型及创建分区的方法
2022/04/13 MySQL