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 相关文章推荐
一个ORACLE分页程序,挺实用的.
Oct 09 PHP
桌面中心(四)数据显示
Oct 09 PHP
PHP 设置MySQL连接字符集的方法
Jan 02 PHP
php获取汉字首字母的函数
Nov 07 PHP
php支付宝接口用法分析
Jan 04 PHP
PHP的关于变量和日期处理的一些面试题目整理
Aug 10 PHP
简单解决微信文章图片防盗链问题
Dec 17 PHP
PHP正则匹配到2个字符串之间的内容方法
Dec 24 PHP
php设计模式之工厂模式用法经典实例分析
Sep 20 PHP
Yii 框架使用数据库(databases)的方法示例
May 19 PHP
PHP实现简易图形计算器
Aug 28 PHP
基于php解决json_encode中文UNICODE转码问题
Nov 10 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实现生成透明背景的PNG缩略图函数分享
2014/07/08 PHP
PHP实现获取第一个中文首字母并进行排序的方法
2017/05/09 PHP
解决jquery .ajax 在IE下卡死问题的解决方法
2009/10/26 Javascript
ajax不执行success回调而是执行了error回调
2012/12/10 Javascript
JavaScript和CSS通过expression实现Table居中显示
2013/06/28 Javascript
Jquery Validate 正则表达式实用验证代码大全
2013/08/23 Javascript
jquery使用淘宝接口跨域查询手机号码归属地实例
2013/11/28 Javascript
鼠标悬浮停留三秒后自动显示大图js代码
2014/09/09 Javascript
js使用split函数按照多个字符对字符串进行分割的方法
2015/03/20 Javascript
javascript数据结构与算法之检索算法
2015/04/04 Javascript
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
简单实现异步编程promise模式
2015/07/31 Javascript
jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
2015/10/10 Javascript
针对JavaScript中this指向的简单理解
2016/08/26 Javascript
利用jquery实现验证输入的是否是数字、小数,包含保留几位小数
2016/12/07 Javascript
详解Vue微信公众号开发踩坑全记录
2017/08/21 Javascript
AngularJS的$location使用方法详解
2017/10/19 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
2019/04/30 Javascript
使用vue-router在Vue页面之间传递数据的方法
2019/07/15 Javascript
前端使用crypto.js进行加密的函数代码
2020/08/16 Javascript
python编码总结(编码类型、格式、转码)
2016/07/01 Python
pandas读取csv文件,分隔符参数sep的实例
2018/12/12 Python
Python爬取豆瓣视频信息代码实例
2019/11/16 Python
Tensorflow: 从checkpoint文件中读取tensor方式
2020/02/10 Python
Python greenlet和gevent使用代码示例解析
2020/04/01 Python
python topk()函数求最大和最小值实例
2020/04/02 Python
图解Python中深浅copy(通俗易懂)
2020/09/03 Python
Python引入多个模块及包的概念过程解析
2020/09/21 Python
新西兰演唱会和体育门票网站:Ticketmaster新西兰
2017/10/07 全球购物
农田水利实习自我鉴定
2013/09/19 职场文书
大课间体育活动方案
2014/03/12 职场文书
一份恶作剧的检讨书
2014/09/13 职场文书
开除通知书范本
2015/04/25 职场文书
师范生见习自我总结
2015/06/23 职场文书
面试被问select......for update会锁表还是锁行
2021/11/11 MySQL
MySQL利用UNION连接2个查询排序失效详解
2021/11/20 MySQL