PHP中的stdClass是什么
stdClass是什么?有什么用?
stdClass是PHP中的类原型、空类,它是最简单的对象,用于将其他类型转换为对象;它类似于Java或Python对象。
stdClass不是对象的基类。如果将对象转换为对象,则不会对其进行修改。但是,在不是NULL的情况下,如果转换对象的类型,则创建stdClass的实例;如果为NULL,则新实例将为空。
用途:
1、stdClass通过调用它们直接访问成员。
2、它在动态对象中很有用。
3、它用于设置动态属性等。
stdClass的使用示例
下面我们通过示例来简单介绍stdClass的使用。
示例1:对比使用数组和stdClass存储数据
使用数组存储数据
<?php
header("content-type:text/html;charset=utf-8");
// 定义一个学生数组
$student_detail_array = array(
"student_id" => "18201401",
"name" => "李XX",
"age" => "20",
"college" => "计算机科学"
);
// 显示数组内容
var_dump($student_detail_array);
?>
使用stdClass而不是数组来存储学生信息(动态属性)
<?php
header("content-type:text/html;charset=utf-8");
// 定义一个学生对象
$student_object = new stdClass;
$student_object->student_id = "18201401";
$student_object->name = "李XX";
$student_object->age = 20;
$student_object->college = "计算机科学";
// 显示学生对象的内容
var_dump($student_object);
?>
注意:可以将数组类型转换为对象,将对象转换为数组。
示例2:将数组转换为对象
<?php
header("content-type:text/html;charset=utf-8");
// 定义一个学生数组
$student_detail_array = array(
"student_id" => "18201401",
"name" => "李XX",
"age" => "20",
"college" => "计算机科学"
);
$employee = (object) $student_detail_array;
// 显示数组内容
var_dump($employee);
?>
示例3:将对象属性转换为数组
<?php
header("content-type:text/html;charset=utf-8");
// 定义一个学生对象
$student_object = new stdClass;
$student_object->student_id = "18201401";
$student_object->name = "李XX";
$student_object->age = 20;
$student_object->college = "计算机科学";
//转换
$student_array = (array) $student_object;
// 显示学生对象的内容
var_dump($student_array);
?>