博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
__tostring()和__invoke()的用法
阅读量:4311 次
发布时间:2019-06-06

本文共 1081 字,大约阅读时间需要 3 分钟。

PHP有很多内置的魔术方法,这里我们聊哈tostring和involk吧。

__tostring()魔术方法

  将一个对象当做一个字符串来使用时,会自动调用该方法,并且在该方法中,可以返回一定的字符串,以表明该对象转换为字符串之后的结果。该魔术方法比较常用。 

  注意:如果没有定义该方法,则对象无法当做字符串来使用!

类里面未定义__tostring()方法的例子:

name = $name; $this->age = $age; $this->sex = $sex; }}$obj1 = new A('周伯通', 18, '男');echo $obj1; //echo 后面为字符串,而对象不是字符串,会报错$v1 = "asd" . $obj1; //.为字符串连接符,会报错$v2 = "123" + $obj1; //+为加法运算符,会报错?>
Catchable fatal error: Object of class A could not be converted to string inD:\web\mytest\vok.php on line16

3个报错内容,那么我们加入__tostring()方法

name = $name; $this->age = $age; $this->sex = $sex; } function __tostring(){ $str = "姓名:" . $this->name; $str .= "年龄:" . $this->age; $str .= ",性别:" . $this->sex; return $str; //这里可以返回“任何字符串内容” }}$obj1 = new A('周伯通', 18, '男');echo $obj1; //调用__tostring(),不会报错?>
姓名:周伯通年龄:18,性别:男

可以看到--tostring自动将对象转字符串了

__invoke()魔术方法

  将对象当作函数来使用时,会自动调用该方法。通常不推荐这么做。

函数来调用会出发这里哦!"; }}$obj = new A();$obj(); //此时就会调用类中的方法:__invoke()

 

转载于:https://www.cnblogs.com/phpper/p/8453372.html

你可能感兴趣的文章
第二届PHP全球开发者大会(含大会的PPT)
查看>>
5.23BOM
查看>>
SVN使用教程
查看>>
献给初学者:谈谈如何学习Linux操作系统
查看>>
vb中的反正弦函数
查看>>
Match:Keywords Search(AC自动机模板)(HDU 2222)
查看>>
ASM:《X86汇编语言-从实模式到保护模式》第16章:Intel处理器的分页机制和动态页面分配...
查看>>
CORS’s source, principle and implementation
查看>>
分割字符串
查看>>
选择排序
查看>>
线性表 - 公式化描述实现线性表
查看>>
javaweb搭建云服务器环境
查看>>
referer——防盗链
查看>>
有callback的回调中,不能直接更新UI的解决办法
查看>>
HDU 4123(树上任意点到其他点的最远距离,rmq
查看>>
Redux在React中的使用
查看>>
Linux目录结构
查看>>
玲珑杯#2.5 A-B
查看>>
Educational Codeforces Round 36 (Rated for Div. 2) E. Physical Education Lessons
查看>>
Entity Framewor中的 Migration
查看>>