在 PHP 中创建一个没有类的对象
-
在 PHP 中使用
new stdClass()
创建一个没有类的对象 -
使用
object
数据类型将数组类型转换为对象以创建对象而不创建类 -
在 PHP 中使用
json_dencode()
函数创建对象而不创建类
本文将介绍在 PHP 中无需创建类即可创建对象的方法。
在 PHP 中使用 new stdClass()
创建一个没有类的对象
我们可以从 stdClass()
创建一个对象,而无需在 PHP 中创建基类。我们可以使用 new
运算符来创建 stdClass()
的对象。对象可以通过调用它们直接访问属性。因此,我们可以使用 stdClass()
创建动态对象和属性。将数组类型转换为对象时,编译器会创建 stdClass()
的实例。
例如,创建一个变量 $object
并存储由 new
运算符创建的 stdClass()
的实例。从 $object
对象调用变量 property
并分配一个字符串。分配字符串,I am an object's property
。使用反斜杠\
转义文本中的撇号。对 $object
变量应用 var_dump()
函数以转储有关该变量的信息。
在下面的示例中,我们创建了一个 stdClass()
对象,并立即为该对象的属性赋值。当我们转储对象时,我们将看到在输出中创建的 stdClass
类的对象。因此,我们可以创建一个对象而无需在 PHP 中创建基类。
示例代码:
#php 7.x
<?php
$object = new stdClass();
$object->property = 'I am an object\'s property';
var_dump($object);
?>
输出:
object(stdClass)#1 (1) { ["property"]=> string(25) "I am an object's property" }
使用 object
数据类型将数组类型转换为对象以创建对象而不创建类
我们可以创建一个对象而无需在 PHP 中创建类,使用 object
数据类型将类型转换为对象。我们可以将数组类型转换为 stdClass
对象。object
关键字在数组将数组类型转换为对象之前用括号括起来。我们可以使用 var_dump()
函数作为第一个方法来查看类型转换对象的信息。
例如,创建一个变量 $place
并在其中存储一个数组。该数组包含 city
和 country
键以及相应的值 Pokhara
和 Nepal
。将 $place
变量分配给新的 $obj
变量。将 object
数据类型写在 $place
变量之前的括号内。使用 $obj
作为参数调用 var_dump()
函数。
下面的示例将数组类型转换为对象。var_dump()
函数在输出部分显示 $obj
对象。它表明它是一个 stdClass
对象。查看 PHP 手册 了解类型转换的工作原理。
代码示例:
#php 7.x
<?php
$place = ['city' => 'Pokhara', 'country' =>'Nepal'];
$obj = (object) $place;
var_dump($obj);
?>
输出:
object(stdClass)#1 (2) { ["city"]=> string(7) "Pokhara" ["country"]=> string(5) "Nepal" }
在 PHP 中使用 json_dencode()
函数创建对象而不创建类
json_decode()
函数将 JSON 字符串转换为 PHP 对象。该函数采用一个字符串参数,该参数将被转换为一个对象。该函数还采用一个可选的布尔参数。这个布尔参数的默认值是 false
,它将把 JSON 对象转换为 PHP 对象。如果值为 true
,它会将 JSON 对象转换为关联数组。
例如,创建一个变量 $jsonobj
并将一个 JSON 对象存储到其中。该对象包含 Harry
、Tony
和 Juan
作为键以及整数值 27
、24
和 32
作为各自的值。键值对括在花括号内。JSON 对象用引号括起来作为字符串。然后在 $jsonobj
变量上使用 json_decode()
函数。将 var_dump()
函数应用于 json_encode()
函数以显示有关编码对象的信息。
在下面的示例中,json_encode()
函数将 JSON 对象转换为 stdClass
的 PHP 对象。var_dump()
函数显示对象的属性和值。因此,我们创建了一个对象,而没有在 PHP 中创建一个类。它还显示值的类型。请查看 PHP 手册 以了解有关 json_decode()
函数的更多信息。
示例代码:
# php 7.x
<?php
$jsonobj = '{"Harry":27,"Tony":24,"Juan":32}';
var_dump(json_decode($jsonobj));
?>
输出:
object(stdClass)#1 (3) { ["Harry"]=> int(27) ["Tony"]=> int(24) ["Juan"]=> int(32) }
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn