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 相关文章推荐
一个没有MYSQL数据库支持的简易留言本的编写
Oct 09 PHP
php 删除无限级目录与文件代码共享
Nov 22 PHP
PHP可变函数的使用详解
Jun 14 PHP
php实例分享之html转为rtf格式
Jun 02 PHP
ThinkPHP中URL路径访问与模块控制器之间的关系
Aug 23 PHP
PHP速成大法
Jan 30 PHP
php操作memcache缓存方法分享
Jun 03 PHP
php使用Jpgraph绘制柱形图的方法
Jun 10 PHP
简单解决微信文章图片防盗链问题
Dec 17 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
Jan 24 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
Mar 19 PHP
laravel 错误处理,接口错误返回json代码
Oct 25 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 in_array() 检查数组中是否存在某个值详解
2016/11/23 PHP
php生成二维码图片方法汇总
2016/12/17 PHP
解决laravel5.4下的group by报错的问题
2019/10/16 PHP
javascript 鼠标拖动图标技术
2010/02/07 Javascript
jquery 图片轮换效果
2010/07/29 Javascript
JavaScript格式化日期时间的方法和自定义格式化函数示例
2014/04/04 Javascript
js实现文字滚动效果
2016/03/03 Javascript
详解vuejs之v-for列表渲染
2017/06/22 Javascript
express框架实现基于Websocket建立的简易聊天室
2017/08/10 Javascript
Vue中建立全局引用或者全局命令的方法
2017/08/21 Javascript
js 概率计算(简单版)
2017/09/12 Javascript
简化vuex的状态管理方案的方法
2018/06/02 Javascript
使用watch在微信小程序中实现全局状态共享
2019/06/03 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
2019/10/15 Javascript
js实现购物车商品数量加减
2020/09/21 Javascript
Python 可爱的大小写
2008/09/06 Python
PyCharm使用教程之搭建Python开发环境
2016/06/07 Python
利用Django内置的认证视图实现用户密码重置功能详解
2017/11/24 Python
Python实现统计给定字符串中重复模式最高子串功能示例
2018/05/16 Python
opencv3/C++ 平面对象识别&amp;透视变换方式
2019/12/11 Python
python查看矩阵的行列号以及维数方式
2020/05/22 Python
Python 如何展开嵌套的序列
2020/08/01 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
2020/08/07 Python
css3中background新增的4个新的相关属性用法介绍
2013/09/26 HTML / CSS
欧洲最大的笔和书写专家:The Pen Shop
2017/03/19 全球购物
New Balance美国官网:运动鞋和健身服装
2017/04/11 全球购物
医学毕业生自我鉴定
2013/10/30 职场文书
带病坚持工作事迹
2014/05/03 职场文书
客户经理竞聘演讲稿
2014/05/15 职场文书
大学生个人求职信例文
2014/07/07 职场文书
秋季运动会演讲稿
2014/09/16 职场文书
护士先进个人总结
2015/02/13 职场文书
房屋租赁意向书范本
2015/05/09 职场文书
react 项目中引入图片的几种方式
2021/06/02 Javascript
MySQL 使用索引扫描进行排序
2021/06/20 MySQL
SQL Server2019安装的详细步骤实战记录(亲测可用)
2022/06/10 SQL Server