“__toString()”是php中的一个魔术方法,在把对象转换成字符串时自动调用,用于一个类被当成字符串时应怎样回应;该方法必须返回一个字符串,否则将发出一条“E_RECOVERABLE_ERROR”级别的致命错误。

本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑
__toString(),类被当成字符串时的回应方法
__toString()是php中的一个魔术方法,在把对象转换成字符串时自动调用。
在面向对象编程中,PHP 提供了一系列的魔术方法,这些魔术方法为编程提供了很多便利,在 PHP 中的作用是非常重要的。PHP 中的魔术方法通常以__(两个下划线)开始,并且不需要显式的调用而是在某种特定条件下自动调用的。
立即学习“PHP免费学习笔记(深入)”;
作用:
__toString() 方法用于一个类被当成字符串时应怎样回应。例如 `echo $obj;` 应该显示些什么。
注意:
此方法必须返回一个字符串,否则将发出一条 `E_RECOVERABLE_ERROR` 级别的致命错误。
警告:
不能在 __toString() 方法中抛出异常。这么做会导致致命错误。
代码:
<?php
class Person
{
public $sex;
public $name;
public $age;
public function __construct($name="", $age=25, $sex='男')
{
$this->name = $name;
$this->age = $age;
$this->sex = $sex;
}
public function __toString()
{
return 'go go go';
}
}
$person = new Person('小明'); // 初始赋值
echo $person;结果:
go go go
那么如果类中没有 __toString() 这个魔术方法运行会发生什么呢?让我们来测试下:
代码:
<?php
class Person
{
public $sex;
public $name;
public $age;
public function __construct($name="", $age=25, $sex='男')
{
$this->name = $name;
$this->age = $age;
$this->sex = $sex;
}
}
$person = new Person('小明'); // 初始赋值
echo $person;结果:
Catchable fatal error: Object of class Person could not be converted to string in D:\phpStudy\WWW\test\index.php on line 18 很明显,页面报了一个致命错误,这是语法所不允许的。
扩展资料:PHP 中的魔术方法如下表所示:
| 魔术方法 | 作用 |
|---|---|
| __construct() | 实例化类时自动调用 |
| __destruct() | 类对象使用结束时自动调用 |
| __set() | 在给未定义的属性赋值时自动调用 |
| __get() | 调用未定义的属性时自动调用 |
| __isset() | 使用 isset() 或 empty() 函数时自动调用 |
| __unset() | 使用 unset() 时自动调用 |
| __sleep() | 使用 serialize 序列化时自动调用 |
| __wakeup() | 使用 unserialize 反序列化时自动调用 |
| __call() | 调用一个不存在的方法时自动调用 |
| __callStatic() | 调用一个不存在的静态方法时自动调用 |
| __toString() | 把对象转换成字符串时自动调用 |
| __invoke() | 当尝试把对象当方法调用时自动调用 |
| __set_state() | 当使用 var_export() 函数时自动调用,接受一个数组参数 |
| __clone() | 当使用 clone 复制一个对象时自动调用 |
| __debugInfo() | 使用 var_dump() 打印对象信息时自动调用 |
推荐学习:《PHP视频教程》
以上就是php __toString()方法有什么用的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号