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对现有搜索引擎的调用
Jun 25 PHP
一个好用的PHP验证码类实例分享
Dec 27 PHP
PHP 下载文件时自动添加bom头的方法实例
Jan 10 PHP
php中simplexml_load_string使用实例分享
Feb 13 PHP
回帖脱衣服的图片实现代码
Feb 15 PHP
访问编码后的中文URL返回404错误的解决方法
Aug 20 PHP
使用PHPCMS搭建wap手机网站
Sep 20 PHP
Smarty模板简单配置与使用方法示例
May 23 PHP
php微信公众账号开发之前五个坑(一)
Sep 18 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
Feb 04 PHP
PHP的反射机制实例详解
Mar 29 PHP
PHP _construct()函数讲解
Feb 03 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
用文本作数据处理
2006/10/09 PHP
PHP编程与应用
2006/10/09 PHP
PHP详解ASCII码对照表与字符转换
2011/12/05 PHP
使用php语句将数据库*.sql文件导入数据库
2014/05/05 PHP
php中常见的sql攻击正则表达式汇总
2014/11/06 PHP
php中preg_match的isU代表什么意思
2015/10/01 PHP
PHP swoole和redis异步任务实现方法分析
2019/08/12 PHP
jquery实用代码片段集合
2010/08/12 Javascript
jQuery的animate函数学习记录
2014/08/08 Javascript
node.js中的fs.lchmodSync方法使用说明
2014/12/16 Javascript
nw.js实现类似微信的聊天软件
2015/03/16 Javascript
jQuery实现的漂亮表单效果代码
2015/08/18 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形网络(1)
2015/11/30 Javascript
JavaScript获取中英文混合字符串长度的方法示例
2017/02/04 Javascript
基于node.js之调试器详解
2017/08/22 Javascript
Vue2.0用 watch 观察 prop 变化(不触发)
2017/09/08 Javascript
浅谈Koa2框架利用CORS完成跨域ajax请求
2018/03/06 Javascript
vue实现的封装全局filter并统一管理操作示例
2020/02/02 Javascript
vue组件讲解(is属性的用法)模板标签替换操作
2020/09/04 Javascript
[02:49:21]2019完美盛典全程录像
2019/12/08 DOTA
Python应用库大全总结
2018/05/30 Python
django如何通过类视图使用装饰器
2019/07/24 Python
Django 1.10以上版本 url 配置注意事项详解
2019/08/05 Python
Python lxml模块的基本使用方法分析
2019/12/21 Python
CSS3等相关属性制作分页导航实现代码
2012/12/24 HTML / CSS
美国女性卫生用品公司:Thinx
2017/06/30 全球购物
求职简历中的自我评价分享
2013/12/08 职场文书
护士自荐信范文
2013/12/15 职场文书
《陋室铭》教学反思
2014/02/26 职场文书
统计系教授推荐信
2014/02/28 职场文书
大学生个人求职信例文
2014/07/07 职场文书
婚礼新人答谢词
2015/01/04 职场文书
教师病假条范文
2015/08/17 职场文书
《颐和园》教学反思
2016/02/19 职场文书
《火烧云》教学反思
2016/02/23 职场文书
使用compose函数优化代码提高可读性及扩展性
2022/06/16 Javascript