__toString()方法

本文介绍了PHP中__toString()方法的作用及实现方式。当直接输出对象时,该方法会被自动调用,避免出现错误并返回指定字符串。通过示例展示了如何定义__toString()方法来输出对象的特定属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们前面说过在类里面声明“__”开始的方法名的方法(PHP给我们提供的),都是在某一时刻不同情况下自动调用执行的方 法,“__toString()”方法也是一样自动被调用的,是在直接输出对象引用时自动调用的, 前面我们讲过对象引用是一个指针,比如 说:“$p=new Person()“中,$p就是一个引用,我们不能使用echo 直接输出$p,这样会输 出“Catchable fatal error: Object of class Person could not be converted to string”这样的错误,如果你在类里面定义了“__toString()”方法,在直接输出对象引用的时候,就不会产生错误,而是自动调用 了”__toString()”方法, 输出“__toString()”方法中返回的字符,所以“__toString()”方法一定要有个返回值(return 语句)。
01
<?php
02
// Declare a simple class
03
class TestClass
04
{
05
    public $foo;
06
 
07
    public function __construct($foo)
08
    {
09
        $this->foo = $foo;
10
    }
11
 
12
    // 定义一个__toString方法,返加一个成员属性$foo
13
    public function __toString()
14
    {
15
        return $this->foo;
16
    }
17
}
18
 
19
$class = new TestClass('Hello');
20
 
21
// 直接输出对象
22
echo $class;
23
?>
上例输出:Hello
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值