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 相关文章推荐
COM in PHP (winows only)
Oct 09 PHP
PHP ajax 分页类代码
Nov 13 PHP
php报表之jpgraph柱状图实例代码
Aug 22 PHP
PHP不用第三变量交换2个变量的值的解决方法
Jun 02 PHP
php环境无法上传文件的解决方法
Apr 30 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
Oct 01 PHP
用 Composer构建自己的 PHP 框架之基础准备
Oct 30 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
Nov 25 PHP
php中有关合并某一字段键值相同的数组合并的改进
Mar 10 PHP
php+ajax实现无刷新分页
Nov 18 PHP
Laravel中使用FormRequest进行表单验证方法及问题汇总
Jun 19 PHP
PHP简单判断手机设备的方法
Aug 23 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实现多服务器session共享之NFS共享的方法
2007/03/16 PHP
PHP读取目录下所有文件的代码
2008/01/07 PHP
PHP 配置文件中open_basedir选项作用
2009/07/19 PHP
THINKPHP项目开发中的日志记录实例分析
2014/12/01 PHP
深入理解PHP JSON数组与对象
2016/07/19 PHP
JavaScript 字符串与数组转换函数[不用split与join]
2009/12/13 Javascript
JQuery获取当前屏幕的高度宽度的实现代码
2011/07/12 Javascript
JS中prototype关键字的功能介绍及使用示例
2013/07/21 Javascript
NodeJS学习笔记之FS文件模块
2015/01/13 NodeJs
javascript 获取浏览器版本
2015/01/21 Javascript
JavaScript操作Oracle数据库示例
2015/03/06 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
2017/06/13 Javascript
bootstrap模态框关闭后清除模态框的数据方法
2018/08/10 Javascript
JavaScript中引用vs复制示例详析
2018/12/06 Javascript
Nuxt使用Vuex的方法示例
2019/09/06 Javascript
在JavaScript中实现链式调用的实现
2019/12/24 Javascript
python字符串加密解密的三种方法分享(base64 win32com)
2014/01/19 Python
python中sys.argv参数用法实例分析
2015/05/20 Python
python 性能优化方法小结
2017/03/31 Python
Python使用迭代器捕获Generator返回值的方法
2017/04/05 Python
Python实现脚本锁功能(同时只能执行一个脚本)
2017/05/10 Python
Django如何配置mysql数据库
2018/05/04 Python
python+numpy+matplotalib实现梯度下降法
2018/08/31 Python
Python shutil模块用法实例分析
2019/10/02 Python
基于python实现文件加密功能
2020/01/06 Python
在keras里实现自定义上采样层
2020/06/28 Python
饿了么订餐官网:外卖、网上订餐
2019/06/28 全球购物
医学实习生自我鉴定
2013/12/12 职场文书
我的网上商城创业计划书
2013/12/26 职场文书
助人为乐表扬信范文
2014/01/14 职场文书
医院领导班子查摆问题对照检查材料思想汇报
2014/10/08 职场文书
教师师德表现自我评价
2015/03/05 职场文书
门卫管理制度范本
2015/08/05 职场文书
找规律教学反思
2016/02/23 职场文书
MySQL的Query Cache图文详解
2021/07/01 MySQL
python画条形图的具体代码
2022/04/20 Python