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开发者事半功倍的十大技巧小结
Apr 20 PHP
javascript 小型动画组件与实现代码
Jun 02 PHP
解析php二分法查找数组是否包含某一元素
May 23 PHP
ThinkPHP中U方法的使用浅析
Jun 13 PHP
PHP面向对象程序设计之类常量用法实例
Aug 20 PHP
ThinkPHP查询返回简单字段数组的方法
Aug 25 PHP
PHP程序员常见的40个陋习,你中了几个?
Nov 20 PHP
PHP函数extension_loaded()用法实例
Jan 19 PHP
PHP实现登录注册之BootStrap表单功能
Sep 03 PHP
thinkPHP中钩子的使用方法实例分析
Nov 16 PHP
Laravel实现搜索的时候分页并携带参数
Oct 15 PHP
thinkphp5.1 框架钩子和行为用法实例分析
May 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
咖啡知识大全
2021/03/03 新手入门
深入了解php4(1)--回到未来
2006/10/09 PHP
?生?D片??C字串
2006/12/06 PHP
php常见的魔术方法详解
2014/12/25 PHP
smarty自定义函数htmlcheckboxes用法实例
2015/01/22 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
2019/05/21 PHP
鼠标经过的文本框textbox变色
2009/05/21 Javascript
关于ExtJS4.1:快捷键支持的问题
2013/04/24 Javascript
在父页面调用子页面的JS方法
2013/09/29 Javascript
html5 canvas js(数字时钟)实例代码
2013/12/23 Javascript
Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
2014/02/12 Javascript
教你用jquery实现iframe自适应高度
2014/06/11 Javascript
jQuery验证元素是否为空的两种常用方法
2015/03/17 Javascript
使用JavaScript为Kindeditor自定义按钮增加Audio标签
2016/03/18 Javascript
微信小程序 安全包括(框架、功能模块、账户使用)详解
2017/01/16 Javascript
基于JavaScript实现飘落星星特效
2017/08/10 Javascript
在vscode中统一vue编码风格的方法
2018/02/22 Javascript
Angular之jwt令牌身份验证的实现
2020/02/14 Javascript
Python的mysql数据库的更新如何实现
2017/07/31 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
2018/05/29 Python
Python标准库shutil用法实例详解
2018/08/13 Python
python内置数据类型之列表操作
2018/11/12 Python
python模块导入的细节详解
2018/12/10 Python
python自带tkinter库实现棋盘覆盖图形界面
2019/07/17 Python
python使用HTMLTestRunner导出饼图分析报告的方法
2019/12/30 Python
Python输出指定字符串的方法
2020/02/06 Python
HTML5中如何显示视频呢 HTML5视频播放demo
2013/06/08 HTML / CSS
基于MUI框架使用HTML5实现的二维码扫描功能
2018/03/01 HTML / CSS
彪马英国官网:PUMA英国
2019/02/11 全球购物
英国女鞋购物网站:Moda in Pelle
2019/02/18 全球购物
集团公司总经理岗位职责
2013/12/20 职场文书
银行演讲稿范文
2014/01/03 职场文书
大学考试作弊检讨书
2014/01/30 职场文书
党员群众路线自我剖析材料
2014/10/06 职场文书
车队安全员岗位职责
2015/02/15 职场文书
分享一些Java的常用工具
2021/06/11 Java/Android