PHP中STDCLASS用法实例分析


Posted in PHP onNovember 11, 2016

本文实例讲述了PHP中STDCLASS用法。分享给大家供大家参考,具体如下:

PHP中STDCLASS在我们开发应用中使用到的不多,但是PHP中STDCLASS作用是非常的大的,下面我们一起来看PHP中STDCLASS的用法.

在WordPress中很多地方使用stdClass来定义一个对象(而通常是用数组的方式),然后使用get_object_vars来把定义的对象『转换』成数组.

如下代码所示:

$tanteng = new stdClass();
$tanteng->name = 'tanteng';
$tanteng->email = 'xxx@qq.com';
$info = get_object_vars($tanteng);
print_r($info);
exit;

输出:

Array ( [name] => tanteng [email] => xxx@qq.com )

get_object_vars的作用是返回由对象属性组成的关联数组。它的效果跟这样定义数组其实是一样的:

$tanteng = array();
$tanteng['name'] = 'tanteng';
$tanteng['email'] = 'xxx@qq.com';

可以这样理解:stdClass是一个内置类,它没有成员变量,也没有成员方法的一个类,new一个stdClass就是实例化了一个『空』对象,它本身没什么意义,但是用stdClass定义有什么好处呢?

如下代码:

$user = new stdClass();
$user->name = 'gouki';
$user->hehe = 'hehe';
$myUser = $user;
$myUser->name = 'flypig';
print_r($user);
print_r($myUser);
print_r($user);

这里$myUser被赋值$user,但其实并没有新开辟一块内存存储变量,$myUser还是指的stdClass这个对象,通过$myUser改变属性页就改变了$user的属性,并不是新建一个副本,如果程序中有许多这样的操作,使用stdClass的方式可以节省内存开销.

运行结果:

stdClass Object
(
  [name] => flypig
  [hehe] => hehe
)
stdClass Object
(
  [name] => flypig
  [hehe] => hehe
)
stdClass Object
(
  [name] => flypig
  [hehe] => hehe
)

从结果可以看出,改变$myUser的属性确实改变了$user声明的stdClass属性,而如果$user是一个数组,赋值给$myUser,那就拷贝了一个副本给$myUser,这样增大系统开销.

当然,你也可以反过来,把一个数组转换为对象:

$hehe['he1'] = 'he1';
$hehe['he2'] = 'he2';
$hh = (object) $hehe;
print_r($hh);

打印结果:

stdClass Object ( [he1] => he1 [he2] => he2 )

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

PHP 相关文章推荐
php中常用编辑器推荐
Jan 02 PHP
Ajax PHP简单入门教程代码
Apr 25 PHP
php 图像函数大举例(非原创)
Jun 20 PHP
PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
May 18 PHP
php教程 插件机制在PHP中实现方案
Nov 02 PHP
基于PHP输出缓存(output_buffering)的深入理解
Jun 13 PHP
PHP针对JSON操作实例分析
Jan 12 PHP
php防止CC攻击代码 php防止网页频繁刷新
Dec 21 PHP
PHP匿名函数和use子句用法实例
Mar 16 PHP
php 从指定数字中获取随机组合的简单方法(推荐)
Apr 05 PHP
PHP实践教程之过滤、验证、转义与密码详解
Jul 24 PHP
PHP+Oracle本地开发环境搭建方法详解
Apr 01 PHP
php遍历替换目录下文件指定内容的方法
Nov 10 #PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
Nov 10 #PHP
PHP数组生成XML格式数据的封装类实例
Nov 10 #PHP
Linux平台php命令行程序处理管道数据的方法
Nov 10 #PHP
PHP中功能强大却很少使用的函数实例小结
Nov 10 #PHP
php事件驱动化设计详解
Nov 10 #PHP
PHP的消息通信机制测试实例
Nov 10 #PHP
You might like
基于PHP array数组的教程详解
2013/06/05 PHP
解析strtr函数的效率问题
2013/06/26 PHP
PHP向浏览器输出内容的4个函数总结
2014/11/17 PHP
WordPress的主题编写中获取头部模板和底部模板
2015/12/28 PHP
PHPstorm快捷键(分享)
2017/07/17 PHP
PHP中使用mpdf 导出PDF文件的实现方法
2018/10/22 PHP
PHPstorm激活码2020年5月13日亲测有效
2020/09/17 PHP
JS 继承实例分析
2008/11/04 Javascript
JavaScript Event学习第十一章 按键的检测
2010/02/10 Javascript
基于Jquery的简单图片切换效果
2011/01/06 Javascript
iframe 上下滚动条如何默认在下方实现原理
2012/12/10 Javascript
Javascript进制转换实例分析
2015/05/14 Javascript
JavaScript中使用Math.PI圆周率属性的方法
2015/06/14 Javascript
基于JavaScript实现定时跳转到指定页面
2016/01/01 Javascript
js动态生成form 并用ajax方式提交的实现方法
2016/09/09 Javascript
javascript判断元素存在和判断元素存在于实时的dom中的方法
2017/01/17 Javascript
Vue学习笔记进阶篇之vue-router安装及使用方法
2017/07/19 Javascript
在vue中使用jointjs的方法
2018/03/24 Javascript
详解vantUI框架在vue项目中的应用踩坑
2018/12/06 Javascript
微信小程序button标签open-type属性原理解析
2020/01/21 Javascript
Vue之封装公用变量以及实现方式
2020/07/31 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
Python中栈、队列与优先级队列的实现方法
2019/06/30 Python
使用python爬取抖音视频列表信息
2019/07/15 Python
稀有和绝版书籍:Biblio.com
2017/02/02 全球购物
世界上最大的罕见唱片、CD和音乐纪念品网上商店:991.com
2018/05/03 全球购物
FC-Moto英国:欧洲最大的摩托车服装和头盔商店之一
2019/08/25 全球购物
中华魂演讲稿
2014/05/13 职场文书
写得不错的求职信范文
2014/07/11 职场文书
乡镇群众路线教育实践活动整改措施
2014/10/04 职场文书
领导欢迎词致辞
2015/01/23 职场文书
督导岗位职责
2015/02/04 职场文书
应收账款管理制度
2015/08/06 职场文书
升学宴家长答谢词
2015/09/29 职场文书
周一问候语大全
2015/11/10 职场文书
2016年万圣节活动总结
2016/04/05 职场文书