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 相关文章推荐
一个ubbcode的函数,速度很快.
Oct 09 PHP
傻瓜化配置PHP环境――Appserv
Dec 13 PHP
用PHPdig打造属于你自己的Google[图文教程]
Feb 14 PHP
PHP 压缩文件夹的类代码
Nov 05 PHP
克隆一个新项目的快捷方式
Apr 10 PHP
深入解析php之apc
May 15 PHP
WordPress中制作导航菜单的PHP核心方法讲解
Dec 11 PHP
WordPress后台中实现图片上传功能的实例讲解
Jan 11 PHP
Symfony2学习笔记之系统路由详解
Mar 17 PHP
php 如何设置一个严格控制过期时间的session
May 05 PHP
php实现的统计字数函数定义与使用示例
Jul 26 PHP
laravel 解决Validator使用中出现的问题
Oct 25 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
239军机修复记
2021/03/02 无线电
PHP 采集程序 常用函数
2008/12/18 PHP
discuz7 phpMysql操作类
2009/06/21 PHP
数组与类使用PHP的可变变量名需要的注意的问题
2013/06/20 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
2017/04/26 PHP
PHP实现动态创建XML文档的方法
2018/03/30 PHP
JavaScript与函数式编程解释
2007/04/27 Javascript
javascript下高性能字符串连接StringBuffer类
2010/08/16 Javascript
javascript 日期时间 转换的方法
2013/02/21 Javascript
Extjs优化(一)删除冗余代码提高运行速度
2013/04/15 Javascript
Jquery1.9.1源码分析系列(十五)动画处理之外篇
2015/12/04 Javascript
JavaScript获取当前时间向前推三个月的方法示例
2017/02/04 Javascript
Vue.js devtool插件安装后无法使用的解决办法
2017/11/27 Javascript
解决在vue+webpack开发中出现两个或多个菜单公用一个组件问题
2017/11/28 Javascript
vue生命周期的探索
2019/04/03 Javascript
Mpvue中使用Vant Weapp组件库的方法步骤
2019/05/16 Javascript
实例Python处理XML文件的方法
2015/08/31 Python
Python使用poplib模块和smtplib模块收发电子邮件的教程
2016/07/02 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
2018/02/03 Python
python 获取指定文件夹下所有文件名称并写入列表的实例
2018/04/23 Python
python 实现在txt指定行追加文本的方法
2018/04/29 Python
Python logging模块用法示例
2018/08/28 Python
python 通过类中一个方法获取另一个方法变量的实例
2019/01/22 Python
Python中使用双下划线防止类属性被覆盖问题
2019/06/27 Python
python UDP(udp)协议发送和接收的实例
2019/07/22 Python
Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)
2020/07/06 Python
如何把python项目部署到linux服务器
2020/08/26 Python
基础的CSS3弹性盒Flexbox布局使用实例
2016/04/08 HTML / CSS
德国香水、化妆品和护理产品网上商店:Parfumdreams
2018/09/26 全球购物
经贸韩语专业大学生职业规划
2014/02/14 职场文书
辞旧迎新演讲稿
2014/09/15 职场文书
物业工程部经理岗位职责
2015/04/09 职场文书
最感人的道歉情书
2015/05/12 职场文书
2016年元旦寄语
2015/08/17 职场文书
python 下载文件的几种方式分享
2021/04/07 Python
Python中异常处理用法
2021/11/27 Python