php中__toString()方法的作用是什么

这篇文章给大家分享的是有关php中__toString()方法的作用是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

创新互联公司专注于云梦企业网站建设,响应式网站开发,商城网站定制开发。云梦网站建设公司,为云梦等地区提供建站服务。全流程按需策划,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务

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

本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

__toString(),类被当成字符串时的回应方法

__toString()是php中的一个魔术方法,在把对象转换成字符串时自动调用。

在面向对象编程中,PHP 提供了一系列的魔术方法,这些魔术方法为编程提供了很多便利,在 PHP 中的作用是非常重要的。PHP 中的魔术方法通常以__(两个下划线)开始,并且不需要显式的调用而是在某种特定条件下自动调用的。

作用:

__toString() 方法用于一个类被当成字符串时应怎样回应。例如 `echo $obj;` 应该显示些什么。

注意:

此方法必须返回一个字符串,否则将发出一条 `E_RECOVERABLE_ERROR` 级别的致命错误。

警告:

不能在 __toString() 方法中抛出异常。这么做会导致致命错误。

代码:

name = $name;
        $this->age  = $age;
        $this->sex  = $sex;
    }
    public function __toString()
    {
        return  'go go go';
    }
}
$person = new Person('小明'); // 初始赋值
echo $person;

结果:

go go go

那么如果类中没有 __toString() 这个魔术方法运行会发生什么呢?让我们来测试下:

代码:

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中__toString()方法的作用是什么”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


文章名称:php中__toString()方法的作用是什么
链接URL:http://myzitong.com/article/jigsdp.html