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 Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
Jun 17 PHP
php对象在内存中的存在形式分析
Feb 03 PHP
PHP异常处理浅析
May 12 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
Jun 06 PHP
thinkphp中的url跳转用法分析
Jul 12 PHP
PHP简单判断手机设备的方法
Aug 23 PHP
PHP图片水印类的封装
Jul 06 PHP
利用php操作memcache缓存的基础方法示例
Aug 02 PHP
php数据结构之顺序链表与链式线性表示例
Jan 22 PHP
php生成复杂验证码(倾斜,正弦干扰线,黏贴,旋转)
Mar 12 PHP
PHP模糊查询技术实例分析【附源码下载】
Mar 07 PHP
详解将数据从Laravel传送到vue的四种方式
Oct 16 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中实现用数组妩媚地生成要执行的sql语句
2015/07/10 PHP
注意!PHP 7中不要做的10件事
2016/09/18 PHP
解决laravel5中auth用户登录其他页面获取不到登录信息的问题
2019/10/08 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
2020/06/03 PHP
利用jQuery的$.event.fix函数统一浏览器event事件处理
2009/12/21 Javascript
JS 实现完美include载入实现代码
2010/08/05 Javascript
基于jquery的内容循环滚动小模块(仿新浪微博未登录首页滚动微博显示)
2011/03/28 Javascript
一个JS的日期格式化算法示例
2013/07/31 Javascript
Node.js模块加载详解
2014/08/16 Javascript
用js提交表单解决一个页面有多个提交按钮的问题
2014/09/01 Javascript
浅析Javascript ES6中的原生Promise
2016/08/25 Javascript
手机图片预览插件photoswipe.js使用总结
2016/08/25 Javascript
Angular.JS中指令ng-if的注意事项小结
2017/06/21 Javascript
详解Node.js利用node-git-server快速搭建git服务器
2017/09/27 Javascript
JS实现字符串中去除指定子字符串方法分析
2018/05/17 Javascript
vue组件通信传值操作示例
2019/01/08 Javascript
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
ant-design-vue 实现表格内部字段验证功能
2019/12/16 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
2020/11/26 Vue.js
[25:59]Newbee vs TNC 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python压缩文件夹内所有文件为zip文件的方法
2015/06/20 Python
python如何查看网页代码
2020/06/07 Python
Python浮点型(float)运算结果不正确的解决方案
2020/09/22 Python
python编写扎金花小程序的实例代码
2021/02/23 Python
CSS3 text-shadow实现文字阴影效果
2016/02/24 HTML / CSS
介绍一下sql server的安全性
2014/08/10 面试题
妇产医师自荐信
2014/01/29 职场文书
早会主持词
2014/03/17 职场文书
槐乡的孩子教学反思
2014/04/27 职场文书
初中班主任经验交流材料
2014/05/16 职场文书
霸气队列口号
2014/06/18 职场文书
优秀教师先进材料
2014/12/16 职场文书
2015年勤工助学工作总结
2015/04/29 职场文书
读鲁迅先生的经典名言
2019/08/20 职场文书
导游词之上饶龟峰
2019/10/25 职场文书
nginx安装以及配置的详细过程记录
2021/09/15 Servers