Rumah > pembangunan bahagian belakang > tutorial php > PHP面向对象-内置标准类和普通数据类型转为对象类型

PHP面向对象-内置标准类和普通数据类型转为对象类型

黄舟
Lepaskan: 2023-03-07 06:22:01
asal
1572 orang telah melayarinya

内置标准类

  PHP中,有很多“现成的类”,其中有一个被称为“内置标准类”。这个类“内部”可以认为什么也没有。

class stdclass{  }
Salin selepas log masuk
<?php$obj1 = new stdclass();
var_dump($obj1);class A{}$obj2 = new A();
var_dump($obj2);?>
Salin selepas log masuk

  运行结果:

object(stdClass)[1]object(A)[2]
Salin selepas log masuk

  可以看到和普通类没什么区别。

  内置标准类的作用是,用于存储一些临时的简单数据,如:

$obj1->pp1 = 1;$obj2->port = &#39;3306&#39;;
Salin selepas log masuk

  也可以在类型转换时用于存储数据。

对象的类型转换

  其他数据类型转换为对象类型,得到的结果是:内置标准类(stdclass)的一个对象。
语法形式为:

$obj = (object)其他类型数据;
Salin selepas log masuk
  • 数组转换为对象:数组的键名当作属性名,值为对象对应的值。

    • 注意:数字下标的数据元素,转换为对象后的属性,无法通过对象语法获取,因此不推荐转换。

<?php
$config = array(    &#39;host&#39; => "localhost",    &#39;port&#39; => 3306,    &#39;user&#39; => "root",    &#39;pass&#39; => "123",    &#39;charset&#39; => "utf8",    &#39;dbname&#39; => "yeoman",
);
$obj1 = (object)$config;
var_dump($obj1);
echo  "<br />单独取出user:" . $obj1->user;?>
Salin selepas log masuk

  运行结果:

object(stdClass)[1]  public &#39;host&#39; => string &#39;localhost&#39; (length=9)  public &#39;port&#39; => int 3306
  public &#39;user&#39; => string &#39;root&#39; (length=4)  public &#39;pass&#39; => string &#39;123&#39; (length=3)  
  public &#39;charset&#39; => string &#39;utf8&#39; (length=4)  public &#39;dbname&#39; => string &#39;yeoman&#39; (length=6)


单独取出user:root
Salin selepas log masuk

  但是数组中有下标元素,转为对象的话,无法通过对象语法获取。

<?php
$arr = array(&#39;pp1&#39; => 1, 5 => 12);
$obj2 = (object)$arr;
var_dump($obj2);
echo "<br />单独取出pp1:" . $obj2->pp1;//echo "<br />单独取出5:" . $obj2->5;//会报错!?>
Salin selepas log masuk

  运行结果:

$arr = array(&#39;pp1&#39; => 1, 5 => 12);
$obj2 = (object)
$arr;
var_dump($obj2);
echo "<br />单独取出pp1:" . $obj2->pp1;//echo "<br />单独取出5:" . $obj2->5;//会报错!?>
Salin selepas log masuk
  • null转换为对象:空对象

$obj = (object)null;
Salin selepas log masuk
  • 其他标量数据转换为对象:属性名为固定的”scalar“,值为该变量的值

<?php$v1 = 1;       
$v2 = 2.2;
$v3 = "abc";
$v4 = true;
$objv1 = (object)
$v1;    //整型转为对象类型
$objv2 = (object)
$v2;    //浮点型转为对象类型
$objv3 = (object)
$v3;    //字符串型为对象类型
$objv4 = (object)
$v4;    //布尔转为对象类型
var_dump($objv1); echo "<br />";
var_dump($objv2); echo "<br />";
var_dump($objv3); echo "<br />";
var_dump($objv4); echo "<br />";
Salin selepas log masuk

  运行结果为:

object(stdClass)[1]  public &#39;scalar&#39; => int 1
object(stdClass)[2]  public &#39;scalar&#39; => float 2.2
object(stdClass)[3]  public &#39;scalar&#39; => string &#39;abc&#39; (length=3)
object(stdClass)[4]  public &#39;scalar&#39; => boolean true
Salin selepas log masuk

Atas ialah kandungan terperinci PHP面向对象-内置标准类和普通数据类型转为对象类型. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan