php中stdClass的用法分析


Posted in PHP onFebruary 27, 2015

本文实例分析了php中stdClass的用法。分享给大家供大家参考。具体分析如下:

stdclass在php中是预定义的几个类之一,是zent保留的一个类。实际上它是PHP提供的一个基类,就是一个空白的类,里面什么都没有,我们可以实例化它,然后定义一系列的变量,通过它来进行变量的传递(很多php程序员用它来传递一系列变量的值,而同时又懒得去创建一个自己的类)。但是,由于实例化后不能添加方法,只能传递属性。因为,一旦类被实列化以后,就不能在添加方法了。

stdclass可以作为基类使用,其最大特点是,(其派生类)可以自动添加成员变量,而无须在定义时说明。

一切php变量都是stdClass的实例。

使用方法:

1、使用stdclass:

$andy = array();
$andy = (object)$andy;
$andy->a = 1;
$andy->b = 2;
$andy->c = 3;

这样数量a、b、c就填进了stdclass里面。这样要省事,因为新建空对像却要$andy = new Andy; 而且还得先有个class Andy{}。又如:

<?php
$a = new stdClass();
$a->id = '11 ';
$a->username = 'me';
print_r($a);
?>

将会输出:stdClass Object ( [id] => 11 [username] => me ) 。
很多时候用这种方法取代数组的使用,只不过是换一种语法形式。

2、读取:

stdClass Object
(
  [getWeatherbyCityNameResult] => stdClass Object
    (
      [string] => Array
        (
          [0] => 四川
          [1] => 成都
          [2] => 56294
          [3] => 56294.jpg
          [4] => 2009-5-17 13:52:08
          [5] => 26℃/19℃
          [6] => 5月17日 阴转阵雨
        )
    )
)

其实和array差不多,只是访问方式改变一点就行,我们一般习惯使用array['key']这种方式来访问数组。
对于这种stdClass来说,如上例,$weather->getWeatherbyCityNameResult->string[0]可以这样来访问属性,这个将得到结果“四川”。

3、实例化,new。

对比这两个代码:

<?php  
$a = array(1=>2,2=>3);
$a = (object)$a;
$a->id = '11 ';
$a->username = 'me';
print_r($a);
?>

将输出:stdClass Object ( [1] => 2 [2] => 3 [id] => 11 [username] => me ) 。

<?php  
$a = array(1=>2,2=>3);
$a = (object)$a;
$a = new stdClass();
$a->id = '11 ';
$a->username = 'me';
print_r($a);
?>

将输出:stdClass Object ( [id] => 11 [username] => me ) 。

原来用new实例化后,前面的数组清空,只留下后面添加进来的,如果不实例化,stdClass将保留所有元素。

需要注意的是,在函数里面使用global、static时遇new stdclass引用的情况,这时&new stdclass将会失效,应避免使用引用,直接用new stdclass。

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
php通用防注入程序 推荐
Feb 26 PHP
深入探讨<br />和 \r\n两者有什么区别??
Jun 05 PHP
php漏洞之跨网站请求伪造与防止伪造方法
Aug 15 PHP
CodeIgniter生成网站sitemap地图的方法
Nov 13 PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
Mar 13 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
Mar 12 PHP
10款PHP开源商城系统汇总介绍
Jul 23 PHP
两种php去除二维数组的重复项方法
Nov 04 PHP
PC端微信扫码支付成功之后自动跳转php版代码
Jul 07 PHP
php实现有序数组旋转后寻找最小值方法
Sep 27 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
Oct 08 PHP
PHP+MySQL实现在线测试答题实例
Jan 02 PHP
php中explode的负数limit用法分析
Feb 27 #PHP
php数组键值用法实例分析
Feb 27 #PHP
php与Mysql的一些简单的操作
Feb 26 #PHP
PHP扩展开发入门教程
Feb 26 #PHP
分享一则PHP定义函数代码
Feb 26 #PHP
php简单分页类实现方法
Feb 26 #PHP
PHP删除指定目录中的所有目录及文件的方法
Feb 26 #PHP
You might like
基于mysql的论坛(5)
2006/10/09 PHP
JS 网站性能优化笔记
2011/05/24 PHP
php单例模式示例分享
2015/02/12 PHP
PHP实现的线索二叉树及二叉树遍历方法详解
2016/04/25 PHP
浅谈PHP之ThinkPHP框架使用详解
2020/07/21 PHP
Jquery+ajax请求data显示在GridView上(asp.net)
2010/08/27 Javascript
JavaScript 字符串处理函数使用小结
2010/12/02 Javascript
对jQuery的事件绑定的一些思考(补充)
2013/04/20 Javascript
无缝滚动js代码通俗易懂(自写)
2013/06/19 Javascript
基于JQuery实现分隔条的功能
2016/06/17 Javascript
浅谈JavaScript对象与继承
2016/07/10 Javascript
js导出excel文件的简洁方法(推荐)
2016/11/02 Javascript
JavaScript实现清空(重置)文件类型INPUT元素值的方法
2016/11/17 Javascript
Vue.js实战之利用vue-router实现跳转页面
2017/04/01 Javascript
Vue.js实现价格计算器功能
2020/03/30 Javascript
使用webpack-dev-server处理跨域请求的方法
2018/04/18 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
2018/05/30 jQuery
Vue使用NProgress的操作过程解析
2019/10/10 Javascript
JavaScript canvas基于数组生成柱状图代码实例
2020/03/06 Javascript
[00:58]2016年国际邀请赛勇士令状宣传片
2016/06/01 DOTA
Python调用SQLPlus来操作和解析Oracle数据库的方法
2016/04/09 Python
遍历python字典几种方法总结(推荐)
2016/09/11 Python
python得到一个excel的全部sheet标签值方法
2018/12/10 Python
Python3.6.x中内置函数总结及讲解
2019/02/22 Python
python turtle库画一个方格和圆实例
2019/06/27 Python
python创建属于自己的单词词库 便于背单词
2019/07/30 Python
pandas处理csv文件的方法步骤
2020/10/16 Python
Anaconda详细安装步骤图文教程
2020/11/12 Python
档案管理员岗位职责
2013/12/01 职场文书
公司营业员的自我评价
2014/03/04 职场文书
党员先锋岗事迹材料
2014/05/08 职场文书
优秀班集体先进事迹材料
2014/05/28 职场文书
甜品店创业计划书
2014/09/21 职场文书
2015年医院护理部工作总结
2015/04/23 职场文书
初中运动会闭幕词范本3篇
2019/12/09 职场文书
MySQL深度分页(千万级数据量如何快速分页)
2021/07/25 MySQL