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仿discuz分页效果代码
Oct 02 PHP
php递归json类实例
Dec 02 PHP
Yii框架调试心得--在页面输出执行sql语句
Dec 25 PHP
PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面
Mar 21 PHP
如何正确配置Nginx + PHP
Jul 15 PHP
微信小程序 消息推送php服务器验证实例详解
Mar 30 PHP
PHP实现将标点符号正则替换为空格的方法
Aug 09 PHP
浅析PHP中的闭包和匿名函数
Dec 25 PHP
php简单检测404页面的方法示例
Aug 23 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
Apr 27 PHP
浅析PHP echo 和 print 语句
Jun 30 PHP
jQuery+PHP实现图片上传并提交功能
Jul 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
echo, print, printf 和 sprintf 区别
2006/12/06 PHP
PHP 反向排序和随机排序代码
2010/06/30 PHP
js的延迟执行问题分析
2014/06/23 Javascript
js添加select下默认的option的value和text的方法
2014/10/19 Javascript
JavaScript使用Math.Min返回两个数中较小数的方法
2015/04/06 Javascript
JavaScript运算符小结
2015/06/03 Javascript
jQuery对象与DOM对象转换方法详解
2016/05/10 Javascript
从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别
2016/06/12 Javascript
AngularJs+Bootstrap实现漂亮的计算器
2017/08/10 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
2017/12/22 Javascript
AngularJS实现的根据数量与单价计算总价功能示例
2017/12/26 Javascript
详解基于vue-cli配置移动端自适应
2018/01/13 Javascript
vue+vant实现商品列表批量倒计时功能
2020/01/13 Javascript
Vuex中的Mutations的具体使用方法
2020/06/01 Javascript
python时间整形转标准格式的示例分享
2014/02/14 Python
Python 获取新浪微博的最新公共微博实例分享
2014/07/03 Python
Python中使用dom模块生成XML文件示例
2015/04/05 Python
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
Django使用httpresponse返回用户头像实例代码
2018/01/26 Python
django中send_mail功能实现详解
2018/02/06 Python
在python win系统下 打开TXT文件的实例
2018/04/29 Python
Python2.7环境Flask框架安装简明教程【已测试】
2018/07/13 Python
pywinauto自动化操作记事本
2019/08/26 Python
python函数声明和调用定义及原理详解
2019/12/02 Python
python django中8000端口被占用的解决
2019/12/17 Python
css3实现波纹特效、H5实现动态波浪效果
2018/01/31 HTML / CSS
详解html5 postMessage解决跨域通信的问题
2018/08/17 HTML / CSS
使用html5实现表格实现标题合并的实例代码
2019/05/13 HTML / CSS
波兰在线香水店:Perfumy.pl
2019/08/12 全球购物
教师工作自我鉴定范文
2014/09/14 职场文书
小学老师对学生的评语
2014/12/29 职场文书
校车安全管理责任书
2015/05/11 职场文书
奖学金申请个人主要事迹材料
2015/11/04 职场文书
《画家和牧童》教学反思
2016/02/17 职场文书
mysql在项目中怎么选事务隔离级别
2021/05/25 MySQL
JavaScript实现音乐播放器
2022/08/14 Javascript