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.ini中文版(1)
Oct 09 PHP
使用apache模块rewrite_module (转)
Feb 14 PHP
PHP 批量删除 sql语句
Jun 05 PHP
PHP获取youku视频真实flv文件地址的方法
Dec 23 PHP
php自定义hash函数实例
May 05 PHP
PHP中配置IIS7实现基本身份验证的方法
Sep 24 PHP
Zend Framework实现多服务器共享SESSION数据的方法
Mar 22 PHP
PHP实现动态执行代码的方法
Mar 25 PHP
PHP实现执行外部程序的方法详解
Aug 17 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
Nov 10 PHP
详解php命令注入攻击
Apr 06 PHP
PHP容器类的两种实现方式示例
Jul 24 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/01/24 PHP
php接口数据加密、解密、验证签名
2015/03/12 PHP
PHP模板引擎Smarty内建函数foreach,foreachelse用法分析
2016/04/11 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
php语言注释,单行注释和多行注释
2018/01/21 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
2007/01/09 Javascript
简单的Jquery全选功能
2013/11/07 Javascript
JSON遍历方式实例总结
2015/12/07 Javascript
ArtEditor富文本编辑器增加表单提交功能
2016/04/18 Javascript
JS如何判断json是否为空
2016/07/06 Javascript
js获取Get值的方法
2016/09/29 Javascript
H5移动端图片压缩上传开发流程
2016/11/09 Javascript
vue2.0 路由模式mode=&quot;history&quot;的作用
2018/10/18 Javascript
使用javascript做时间倒数读秒功能的实例
2019/01/23 Javascript
[06:45]DOTA2-DPC中国联赛 正赛 Magma vs LBZS 选手采访
2021/03/11 DOTA
Python操作sqlite3快速、安全插入数据(防注入)的实例
2014/04/26 Python
Python实现定时精度可调节的定时器
2018/04/15 Python
Python读取excel指定列生成指定sql脚本的方法
2018/11/28 Python
Python3.9又更新了:dict内置新功能
2020/02/28 Python
Python3+selenium实现cookie免密登录的示例代码
2020/03/18 Python
python的pip有什么用
2020/06/17 Python
美国最大点评网站:Yelp
2018/02/14 全球购物
英国快时尚女装购物网站:PrettyLittleThing
2018/08/15 全球购物
通往英国高街的商店橱窗:Down Your High Street
2020/07/19 全球购物
公司市场部岗位职责
2013/12/02 职场文书
国庆节文艺活动方案
2014/02/03 职场文书
趣味体育活动方案
2014/02/08 职场文书
移交协议书
2014/08/19 职场文书
培根随笔读书笔记
2015/07/01 职场文书
工伤调解协议书
2016/03/21 职场文书
2019最新婚庆对联集锦!
2019/07/10 职场文书
python requests模块的使用示例
2021/04/07 Python
python自动化之如何利用allure生成测试报告
2021/05/02 Python
浅谈mysql增加索引不生效的几种情况
2021/06/23 MySQL
详解Redis在SpringBoot工程中的综合应用
2021/10/16 Redis