PHP魔术方法 _toString()
创建时间:2017-11-26 投稿人: 滕彤 浏览次数:315
__toString()
方法用于一个类被当成字符串时应怎样回应。例如 echo $obj
; 应该显示些什么。
此方法必须返回一个字符串,否则将发出一条 E_RECOVERABLE_ERROR
级别的致命错误。
例:
class Person{ public $name; protected $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; }}$p = new Person("小明", 20);//使用echo 输出对象echo $p;
此时会报出一个致命错误
错误的大意是 Person
类不能转换为string
;其实这个时候会默认调用__toString()
方法;
添加__tostring()
方法到类中
class Person{ public $name; protected $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } public function __toString() { echo "__toString 被调用"; }}$p = new Person("小明", 20);echo $p;
再次执行程序:
可以发现在报错之前先调用了__toString
这个魔术方法,也就意味着,当我们输出一个对象的时候,可以在__toString
中近性处理,最后一个返回一个字符串;
class Person{ public $name; protected $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } public function __toString() { return "我是". $this->name." ". $this->age."岁"; }}$p = new Person("小明", 20);echo $p;
输出结果:
这里需要注意的是__toString()
中一定要return
,不然还会报错。
想和我一起学习的朋友可以关注我的微信公众号:会编程的少年,微信号:iphpcode
也可以到我的博客留言 http://iphpcode.cn
bye!
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。