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 相关文章推荐
apache2.2.4+mysql5.0.77+php5.2.8安装精简
Apr 29 PHP
windows下开发并编译PHP扩展的方法
Mar 18 PHP
两级联动select刷新后其值保持不变的实现方法
Jan 27 PHP
使用YUI+Ant 实现JS CSS压缩
Sep 02 PHP
PHP获取当前日期和时间及格式化方法参数
May 11 PHP
php随机显示指定文件夹下图片的方法
Jul 13 PHP
简单介绍win7下搭建apache+php+mysql开发环境
Aug 06 PHP
PHP list() 将数组中的值赋给变量的简单实例
Jun 13 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
Aug 30 PHP
PHP实现求两个字符串最长公共子串的方法示例
Nov 17 PHP
php实现文章评论系统
Feb 18 PHP
PHP如何开启Opcache功能提升程序处理效率
Apr 27 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实现删除指定目录下相关文件的方法
2014/10/20 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
2016/01/05 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
2016/03/18 PHP
Yii多表联合查询操作详解
2016/06/02 PHP
PHP实现一个轻量级容器的方法
2019/01/28 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
jquery 常用操作整理 基础入门篇
2009/10/14 Javascript
js 可拖动列表实现代码
2011/12/13 Javascript
js 定时器setTimeout无法调用局部变量的解决办法
2013/11/28 Javascript
js获取指定日期周数以及星期几的小例子
2014/06/27 Javascript
js使用setTimeout实现定时炸弹的方法
2015/04/10 Javascript
javascript十六进制及二进制转化的方法
2015/05/06 Javascript
ECHO.js 纯javascript轻量级延迟加载的实例代码
2016/05/24 Javascript
jQuery快速高效制作网页交互特效
2017/02/24 Javascript
如何选择适合你的JavaScript框架
2017/11/20 Javascript
基于Vue实现可以拖拽的树形表格实例详解
2018/10/18 Javascript
JSON是什么?有哪些优点?JSON和XML的区别?
2019/04/29 Javascript
js使用文件流下载csv文件的实现方法
2019/07/15 Javascript
微信小程序设置滚动条过程详解
2019/07/25 Javascript
JS 自执行函数原理及用法
2019/08/05 Javascript
JS Html转义和反转义(html编码和解码)的实现与使用方法总结
2020/03/10 Javascript
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
2019/03/18 Python
Python3.5装饰器原理及应用实例详解
2019/04/30 Python
Python实现获取系统临时目录及临时文件的方法示例
2019/06/26 Python
python实现超市商品销售管理系统
2019/11/22 Python
python 写函数在一定条件下需要调用自身时的写法说明
2020/06/01 Python
Python如何实现自带HTTP文件传输服务
2020/07/08 Python
浅析python字符串前加r、f、u、l 的区别
2021/01/24 Python
HTML 5 input placeholder 属性如何完美兼任ie
2014/05/12 HTML / CSS
德国价格合理的品牌商品购物网站:averdo
2019/03/21 全球购物
机械设计职业生涯规划书
2013/12/27 职场文书
自我反省检讨书
2014/01/23 职场文书
环保倡议书400字
2014/05/15 职场文书
大学学雷锋活动总结
2014/06/26 职场文书
公务员政审材料
2014/12/23 职场文书
2019年最新感恩节祝福语(28句)
2019/11/27 职场文书