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 相关文章推荐
使用数据库保存session的方法
Oct 09 PHP
可定制的PHP缩略图生成程式(需要GD库支持)
Mar 06 PHP
php 无限分类的树类代码
Dec 03 PHP
用php实现让页面只能被百度gogole蜘蛛访问的方法
Dec 29 PHP
php字符编码转换之gb2312转为utf8
Oct 28 PHP
Thinkphp将二维数组变为标签适用的一维数组方法总结
Oct 30 PHP
PHP实现阳历到农历转换的类实例
Mar 07 PHP
php技术实现加载字体并保存成图片
Jul 27 PHP
php验证邮箱和ip地址最简单方法汇总
Oct 30 PHP
php实现微信扫码自动登陆与注册功能
Sep 22 PHP
PHP CURL使用详解
Mar 21 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
Aug 05 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
php实现分页显示
2015/11/03 PHP
phpcms配置列表页以及获得文章发布时间
2017/07/04 PHP
论坛特效代码收集(落伍转发-不错)
2006/12/02 Javascript
javascript写的简单的计算器,内容很多,方法实用,推荐
2011/12/29 Javascript
验证控件与Button的OnClientClick事件详细解析
2013/12/04 Javascript
封装好的js判断操作系统与浏览器代码分享
2015/01/09 Javascript
浅谈jquery中next与siblings的区别
2016/10/27 Javascript
angular forEach方法遍历源码解读
2017/01/25 Javascript
jQuery事件与动画基础详解
2017/02/23 Javascript
微信小程序遇到修改数据后页面不渲染的问题解决
2017/03/09 Javascript
简单实现jQuery弹幕效果
2017/05/06 jQuery
seajs模块压缩问题与解决方法实例分析
2017/10/10 Javascript
详解vue中axios的封装
2018/07/18 Javascript
24行JavaScript代码实现Redux的方法实例
2019/11/17 Javascript
JavaScript遍历数组的方法代码实例
2020/01/14 Javascript
Vue + Node.js + MongoDB图片上传组件实现图片预览和删除功能详解
2020/04/29 Javascript
详解Node.JS模块 process
2020/08/31 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
2020/11/11 Javascript
Python的print用法示例
2014/02/11 Python
Python标准库urllib2的一些使用细节总结
2015/03/16 Python
python使用fork实现守护进程的方法
2017/11/16 Python
python GUI实例学习
2017/11/21 Python
Python实现中一次读取多个值的方法
2018/04/22 Python
python 实现识别图片上的数字
2019/07/30 Python
Django接收post前端返回的json格式数据代码实现
2019/07/31 Python
Spring实战之使用util:命名空间简化配置操作示例
2019/12/09 Python
python 用 xlwings 库 生成图表的操作方法
2019/12/22 Python
Python动态导入模块和反射机制详解
2020/02/18 Python
Python私有属性私有方法应用实例解析
2020/09/15 Python
小学向国旗敬礼活动方案
2014/09/27 职场文书
2014年第四季度入党积极分子思想汇报(十八届四中全会)
2014/11/03 职场文书
幼儿园中班教师个人工作总结
2015/02/06 职场文书
拾金不昧通报表扬范文
2015/05/05 职场文书
小人国观后感
2015/06/11 职场文书
班干部学习委员竞选稿
2015/11/20 职场文书
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python