php中stdClass的用法分析_php技巧

本文实例分析了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
, 用法
STDCLASS
php stdclass、php stdclass 转数组、php new stdclass、php stdclass array、stdclass object php,以便于您获取更多的相关知识。

时间: 2025-01-01 02:19:41

php中stdClass的用法分析_php技巧的相关文章

php中rename函数用法分析_php技巧

本文实例分析了php中rename()函数用法.分享给大家供大家参考.具体如下: php filesystem 函数,rename() 函数重命名文件或目录,若成功,则该函数返回 true.若失败,则返回 false. 语句:rename(oldname,newname,context) 参数 描述 oldname 必需,规定要重命名的文件或目录. newname 必需,规定文件或目录的新名称 context 必需,规定文件句柄的环境,context 是可修改流的行为的一套选项 注释:在 php

php中filter_input函数用法分析_php技巧

本文实例分析了php中filter_input函数用法.分享给大家供大家参考.具体分析如下: 在 php5.2 中,内置了filter 模块,用于变量的验证和过滤,过滤变量等操作,这里我们看下如何直接过滤用户输入的内容. fliter 模块对应的 filter_input 函数使用起来非常的简单,例如我们过滤用户输入名为 sample 的 get 参数为整型,那么可以这样写: 复制代码 代码如下: filter_input(input_get, "sample", filter_san

php中explode函数用法分析_php技巧

本文实例分析了php中explode函数用法.分享给大家供大家参考.具体如下: explode(string separator,string string [,int limit]) separator 为空字符串(""),explode() 将返回 FALSE,如果 separator 所包含的值在 string 中找不到,那么 explode() 将返回包含 string 单个元素的数组. explode实例一,代码如下: 复制代码 代码如下: $explode = "

php中final关键字用法分析_php技巧

本文实例讲述了php中final关键字用法.分享给大家供大家参考,具体如下: final关键字只能用来定义类和定义方法. 使用final关键字标记的类不能被继承 final class Person{ ....... } class Student extends Person{ ....... } 会出现错误提示.Fatal error :Class Student may not inherit from final class(Person) 使用final关键字标记的方法不能被子类覆盖

php中this关键字用法分析_php技巧

本文实例讲述了php中this关键字用法.分享给大家供大家参考,具体如下: 下面定义了一个Cart类 <?php class Cart { var $items; // 购物车中的项目 // 把 $num 个 $artnr 放入车中 function add_item ($artnr, $num) { $this->items[$artnr] += $num; } // 把 $num 个 $artnr 从车中取出 function remove_item ($artnr, $num) { if

PHP中set_include_path()函数相关用法分析_php技巧

本文实例讲述了PHP中set_include_path()函数相关用法.分享给大家供大家参考,具体如下: 先看如下代码: <?php /** 定义根目录 */ define('__TYPECHO_ROOT_DIR__', dirname(__FILE__)); /** 定义插件目录(相对路径) */ define('__TYPECHO_PLUGIN_DIR__', '/usr/plugins'); /** 设置包含路径 */ @set_include_path(get_include_path(

PHP中SimpleXML函数用法分析_php技巧

本文实例讲述了关于php中SimpleXML 函数的用法,此函数是允许您把 XML 转换为对象,分享给大家供大家参考.具体分析如下: SimpleXML 函数允许您把 XML 转换为对象,通过普通的属性选择器或数组迭代器,可以处理这个对象,就像处理任何其他对象一样.其中的一些函数需要最新的 PHP 版本. 安装:SimpleXML 函数是 PHP 核心的组成部分,无需安装即可使用这些函数,代码如下: 复制代码 代码如下: <?php  //以对象形式返回所有内容  $lib = simplexm

php中stdClass的用法分析

 这篇文章主要介绍了php中stdClass的用法,实例分析了stdClass的功能及使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例分析了php中stdClass的用法.分享给大家供大家参考.具体分析如下: stdclass在php中是预定义的几个类之一,是zent保留的一个类.实际上它是PHP提供的一个基类,就是一个空白的类,里面什么都没有,我们可以实例化它,然后定义一系列的变量,通过它来进行变量的传递(很多php程序员用它来传递一系列变量的值,而同时又懒得去创建一个自

php类中的各种拦截器用法分析_php技巧

本文实例讲述了php类中的各种拦截器用法.分享给大家供大家参考.具体用法分析如下: 1.__get( $property ) 访问未定义的属性时调用 复制代码 代码如下: class lanjie  {      function __get($name)      {          echo $name." property not found! ";      }  }  $ob = new lanjie();  echo $ob->g; 当我们调用对象$ob未定义的属性