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 相关文章推荐
第十一节 重载 [11]
Oct 09 PHP
我的论坛源代码(七)
Oct 09 PHP
PHP生成HTML静态页面实例代码
Aug 31 PHP
PHP获取表单textarea数据中的换行问题
Sep 10 PHP
PHP数据库链接类(PDO+Access)实例分享
Dec 05 PHP
php5.3提示Function ereg() is deprecated Error问题解决方法
Nov 12 PHP
php通过文件头判断格式的方法
May 28 PHP
PHP实现适用于文件内容操作的分页类
Jun 15 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
May 29 PHP
PHP截取发动短信内容的方法
Jul 04 PHP
PHP仿tp实现mvc框架基本设计思路与实现方法分析
May 23 PHP
php新建文件的方法实例
Sep 26 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和ACCESS写聊天室(四)
2006/10/09 PHP
PHP 在线翻译函数代码
2009/05/07 PHP
PHP autoload与spl_autoload自动加载机制的深入理解
2013/06/05 PHP
查找php配置文件php.ini所在路径的二种方法
2014/05/26 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
2014/08/11 PHP
thinkPHP5.0框架安装教程
2017/03/25 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
2017/08/04 PHP
PHP 实现文件压缩解压操作的方法
2019/06/14 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
Prototype 学习 工具函数学习($方法)
2009/07/12 Javascript
js向上无缝滚动,网站公告效果 具体代码
2013/11/18 Javascript
jQuery窗口、文档、网页各种高度的精确理解
2014/07/02 Javascript
jquery使用正则表达式验证email地址的方法
2015/01/22 Javascript
JS实现简单的键盘打字的效果
2015/04/24 Javascript
javascript限制文本框输入值类型的方法
2015/05/07 Javascript
浅谈jQuery中replace()方法
2015/05/13 Javascript
AngularJS中的过滤器filter用法完全解析
2016/04/22 Javascript
jQuery stop()用法实例详解
2016/07/28 Javascript
jQuery的ajax和遍历数组json实例代码
2016/08/01 Javascript
JS实现搜索框文字可删除功能
2016/12/28 Javascript
老生常谈的跨域处理
2017/01/11 Javascript
JS判断键盘是否按的回车键并触发指定按钮点击操作的方法
2017/02/13 Javascript
js实现移动端微信页面禁止字体放大
2017/02/16 Javascript
详解vue中使用express+fetch获取本地json文件
2017/10/10 Javascript
详解vue中的computed的this指向问题
2018/12/05 Javascript
layui原生表单验证的实例
2019/09/09 Javascript
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
Python中DJANGO简单测试实例
2015/05/11 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
2020/01/24 Python
Python系统公网私网流量监控实现流程
2020/11/23 Python
横幅标语大全
2014/06/17 职场文书
三方协议书
2015/01/27 职场文书
庆六一开幕词
2015/01/29 职场文书
初二物理教学反思
2016/02/19 职场文书
mysql升级到5.7时,wordpress导数据报错1067的问题
2021/05/27 MySQL
python运算符之与用户交互
2022/04/13 Python