PHP 中将对象转换为字符串
-
在 PHP 中使用
__toString()
魔术方法将对象转换为字符串 -
在 PHP 中使用
serialize()
函数将对象转换为字符串 -
在 PHP 中使用
print_r()
函数将对象转换成字符串
本教程介绍了在 PHP 中将对象转换为字符串的不同方法。
在 PHP 中使用 __toString()
魔术方法将对象转换为字符串
我们可以使用 __toString()
PHP 魔术方法将对象转换为 PHP 中的字符串。PHP 中有一些方法以 __
开头,PHP 保留了它们。当我们对对象执行某些特定操作时,这些方法会覆盖默认行为。一些魔法函数是 __construct()
、__destruct()
、__isset()
、__set()
、__get()
等。我们可以使用 __toString()
方法来模拟一个对象到一个字符串。然后,我们可以研究像字符串一样的对象的行为。在 PHP 8.0 之前,__toString()
方法应该总是返回一个字符串值;否则会抛出错误。但是,如果可能,PHP 8.0 会将该值强制转换为字符串。
例如,创建一个类 Student
并编写一个变量 $name
作为属性并为其命名。然后,编写 __toString()
函数并使用 $this
关键字返回 $name
变量。在类之外,创建名为 $st
的类 Student
的对象。现在,使用 echo
函数打印 $st
对象。
在输出部分,我们可以看到显示的名称。因此,它证明该对象已转换为字符串。echo
函数是一个字符串函数,我们使用它打印字符串。这就是我们如何使用魔术方法 __toString()
将对象转换为字符串的方法。
示例代码:
<?php
class Student {
protected $name = 'Jadon';
public function __toString() {
return $this->name;
}
}
$st = new Student;
echo $st;
?>
输出:
Jadon
在 PHP 中使用 serialize()
函数将对象转换为字符串
PHP 中的 serialize()
函数将给定值转换为字节流字符串的表示形式。当我们想要将数据存储在会话或数据库中时,我们可以使用该函数。可以使用 serialize()
函数将对象转换为字符串。该函数返回一个位序列。当我们需要通过网络传输比特时,这个函数就派上用场了。
例如,创建与第一种方法相同的类和成员变量。然后,创建一个函数 show()
。使用函数内的 echo
函数,使用 $this
关键字打印 $name
变量。在函数之外,创建一个 Student
类的对象 $st
。使用 $st
对象调用 show()
函数。然后在对象 $st
上使用 serialize()
函数并使用 echo
函数将其打印出来。
下面的示例以位序列输出一个字符串。因此,我们可以使用 serialize()
函数将 PHP 对象转换为字符串。
示例代码:
<?php
class Student {
protected $name = 'Jadon';
public function show() {
echo $this->name."<br>";
}
}
$st = new Student;
$st->show();
$sr = serialize($st);
echo $sr;
?>
输出:
Jadon
O:7:"Student":1:{s:7:"*name";s:5:"Jadon";}
在 PHP 中使用 print_r()
函数将对象转换成字符串
我们还可以使用 print_r()
函数将对象转换为 PHP 中的字符串。该函数将第一个参数作为要打印的值,第二个参数作为返回参数,一个布尔值。我们可以提供一个对象作为第一个参数,并提供一个 true
布尔值作为第二个参数来返回一个字符串。返回参数是可选的。如果未提供第二个参数,print_r()
函数将打印所提供变量的值。
例如,创建一个具有两个成员变量 $name
和 $age
的类 Student
。创建一个以 $name
和 $age
作为参数的构造函数并设置变量。在类之外,创建一个对象 $st
并将值 jadon
和 21
作为构造函数的参数。然后,创建另一个变量 $result
并为其分配 print_r()
函数。将函数的第一个参数设置为 $st
,将 true
设置为第二个参数。最后,使用 echo
函数打印出 $result
。
当我们将 print_r()
函数的返回参数设置为 true
时,该函数返回字符串并将其存储在 $result
变量中。因此,我们可以使用 echo
函数打印字符串。这样,我们就可以使用 print_r()
函数将对象转换为 PHP 中的字符串。
示例代码:
class Student {
protected $name;
protected $age;
public function __construct($name, $age) {
$this->name =$name;
$this->age = $age;
}
}
$st = new Student("jadon", 21);
$result = print_r($st, true);
echo $result;
?>
输出:
Student Object ( [name:protected] => jadon [age:protected] => 21 )
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