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 05 PHP
解析在PHP中使用mysqli扩展库对mysql的操作
Jul 03 PHP
php常用字符串比较函数实例汇总
Nov 24 PHP
php中get_object_vars()方法用法实例
Feb 08 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
Aug 25 PHP
一个简单至极的PHP缓存类代码
Oct 23 PHP
使用PHP uniqid函数生成唯一ID
Nov 18 PHP
PHP 接入微信扫码支付总结(总结篇)
Nov 03 PHP
PC端微信扫码支付成功之后自动跳转php版代码
Jul 07 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 PHP
thinkPHP框架自动填充原理与用法分析
Apr 03 PHP
CI框架简单分页类用法示例
Jun 06 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生成自己的LOG文件
2006/10/09 PHP
让PHP支持断点续传的源码
2010/05/16 PHP
解析php中获取系统信息的方法
2013/06/25 PHP
php使用Cookie实现和用户会话的方法
2015/01/21 PHP
浅谈PHP中类和对象的相关函数
2017/04/26 PHP
详解laravel passport OAuth2.0的4种模式
2019/11/04 PHP
用JS写的一个TableView控件代码
2010/01/23 Javascript
JS保留两位小数 四舍五入函数的小例子
2013/11/20 Javascript
jquery中的$(document).ready()使用小结
2014/02/14 Javascript
用js传递value默认值的示例代码
2014/09/11 Javascript
JS实现网页右侧带动画效果的伸缩窗口代码
2015/10/29 Javascript
基于jquery实现省市区三级联动效果
2015/12/25 Javascript
基于JS模仿windows文件按名称排序效果
2016/06/29 Javascript
Js操作DOM元素及获取浏览器高宽的简单方法
2016/09/08 Javascript
js操作浏览器的参数方法
2017/01/21 Javascript
js以及jquery实现手风琴效果
2020/04/17 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
2018/05/16 Javascript
Node.js命令行/批处理中如何更改Linux用户密码浅析
2018/07/22 Javascript
用vscode开发vue应用的方法步骤
2019/05/06 Javascript
三步实现ionic3点击退出app程序
2019/09/17 Javascript
Vue实现购物车基本功能
2020/11/08 Javascript
[28:48]《真视界》- 2017年国际邀请赛
2017/09/27 DOTA
在Python中实现贪婪排名算法的教程
2015/04/17 Python
Python实现树莓派WiFi断线自动重连的实例代码
2017/03/16 Python
浅谈python中拼接路径os.path.join斜杠的问题
2018/10/23 Python
django ModelForm修改显示缩略图 imagefield类型的实例
2019/07/28 Python
Python 生成一个从0到n个数字的列表4种方法小结
2019/11/28 Python
Python使用lambda抛出异常实现方法解析
2020/08/20 Python
python用opencv 图像傅里叶变换
2021/01/04 Python
利用纯CSS3实现文字向右循环闪过效果实例(可用于移动端)
2017/06/15 HTML / CSS
CSS+jQuery+PHP+MySQL实现的在线答题功能
2015/04/25 HTML / CSS
围城读书笔记
2015/06/26 职场文书
浅谈MySQL user权限表
2021/06/18 MySQL
Python pygame实现中国象棋单机版源码
2021/06/20 Python
Python代码实现双链表
2022/05/25 Python
WIN10使用IIS部署ftp服务器详细教程
2022/08/05 Servers