ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

PHP系列 | PHP中的stdClass是什么?

2022-06-02 14:00:08  阅读:198  来源: 互联网

标签:www 系列 name personal object HangZhou stdClass PHP


简介

stdClass 是 PHP 中的空类,用于将其他类型转换为对象。它类似于 Java 或 Python 对象。 stdClass 不是对象的基类

转换为对象

如果将一个对象转换成对象,它将不会有任何变化。如果其它任何类型的值被转换成对象,将会创建一个内置类 stdClass 的实例。如果该值为 null,则新的实例为空。 array 转换成 object 将使键名成为属性名并具有相对应的值。注意:在这个例子里, 使用 PHP 7.2.0 之前的版本,数字键只能通过迭代访问。

stdClass() 的定义

1、stdClass是PHP的一个基类,几乎所有的类都继承这个类,任何时候都可以被new,可以让一个变量成为一个对象(object)。

2、所有使用 new stdClass 的变量,都不能使用方法,即不可能出现 $a->text() 的情况 

3、stdClass 在 php5 版本开始流行起来的,低于php5的版本,尽量或不使用此方法(好像这一条是多余的)

stdClass() 的用途

1、stdClass通过调用它们直接访问成员。

2、它在动态对象中很有用。

3、它用于设置动态属性等。

stdClass 类的使用

1、存储数据

(1)数组存储

1 // 定义数组存储个人信息
2 $personal_array = [
3     "name" => "Tinywan",
4     "home" => "www.tinywan.com",
5     "address" => "ZheJiang HangZhou"
6 ];
7 
8 // 显示数组内容
9 print_r($personal_array);

输出内容

Array
(
    [name] => Tinywan
    [home] => www.tinywan.com     
    [address] => ZheJiang HangZhou
)

(2)stdClass存储:使用 stdClass 而不是数组来存储个人详细信息(动态属性)

$personal_object = new stdClass();
$personal_object->name = "Tinywan";
$personal_object->home = "www.tinywan.com";
$personal_object->address = "ZheJiang HangZhou";

// 显示对象内容
print_r($personal_object);

输出内容

stdClass Object
(
    [name] => Tinywan
    [home] => www.tinywan.com     
    [address] => ZheJiang HangZhou
)

注意:数组到对象和对象到数组的类型转换是可能的。

(3)将数组转换为对象

$personal_array = [
    "name" => "Tinywan",
    "home" => "www.tinywan.com",
    "address" => "ZheJiang HangZhou"
];
$personal_object = (object) $personal_array;

// 显示对象内容
print_r($personal_object);

输出内容

stdClass Object
(
    [name] => Tinywan
    [home] => www.tinywan.com     
    [address] => ZheJiang HangZhou
)

(4)将对象属性转换为数组

$personal_object = new stdClass();
$personal_object->name = "Tinywan";
$personal_object->home = "www.tinywan.com";
$personal_object->address = "ZheJiang HangZhou";

$personal_array = (array) $personal_object;
// 显示数组内容
print_r($personal_array);

输出内容

Array
(
    [name] => Tinywan
    [home] => www.tinywan.com
    [address] => ZheJiang HangZhou
)

2、动态增加属性

$personal_object = new stdClass();
$personal_object->name = "Tinywan";
$personal_object->home = "www.tinywan.com";
$personal_object->address = "ZheJiang HangZhou";
print_r($personal_object);

// 动态增加属性
$personal_object->age = 24;
$personal_object->schoole = "GanZhengFa";
print_r($personal_object);

输出

stdClass Object
(
    [name] => Tinywan
    [home] => www.tinywan.com
    [address] => ZheJiang HangZhou
)
stdClass Object
(
    [name] => Tinywan
    [home] => www.tinywan.com
    [address] => ZheJiang HangZhou
    [age] => 24
    [schoole] => GanZhengFa
)

 

标签:www,系列,name,personal,object,HangZhou,stdClass,PHP
来源: https://www.cnblogs.com/tinywan/p/16337537.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有