php面向对象怎么调用属性(PHP面向对象程序设计__tostring和__invoke用法分析)
类别:编程学习 浏览量:1637
时间:2022-03-28 01:19:45 php面向对象怎么调用属性
PHP面向对象程序设计__tostring和__invoke用法分析本文实例讲述了PHP面向对象程序设计__tostring()和__invoke()用法。分享给大家供大家参考,具体如下:
__tostring()
魔术方法
将一个对象当做一个字符串来使用时,会自动调用该方法,并且在该方法中,可以返回一定的字符串,以表明该对象转换为字符串之后的结果。该魔术方法比较常用。
注意:如果没有定义该方法,则对象无法当做字符串来使用!
类里面未定义__tostring()
方法的例子:
|
<?php ini_set ( 'display_errors' , 1); class A{ public $name ; public $age ; public $sex ; function __construct( $name , $age , $sex ){ $this ->name = $name ; $this ->age = $age ; $this ->sex = $sex ; } } $obj1 = new A( '张三' , 15, '男' ); echo $obj1 ; //echo 后面为字符串,而对象不是字符串,会报错 $v1 = "abc" . $obj1 ; //.为字符串连接符,会报错 $v2 = "abx" + $obj1 ; //+为加法运算符,会报错 ?> |
3个报错内容分别为
Catchable fatal error: Object of class A could not be converted to string
Catchable fatal error: Object of class A could not be converted to string
Notice: Object of class A could not be converted to int
类里面定义__tostring()
方法
|
<?php ini_set ( 'display_errors' , 1); class A{ public $name ; public $age ; public $sex ; function __construct( $name , $age , $sex ){ $this ->name = $name ; $this ->age = $age ; $this ->sex = $sex ; } function __tostring(){ $str = "姓名:" . $this ->name; $str .= "年龄:" . $this ->age; $str .= ",性别:" . $this ->sex; return $str ; //这里可以返回“任何字符串内容” } } $obj1 = new A( '张三' , 15, '男' ); echo $obj1 ; //调用__tostring(),不会报错 ?> |
运行结果
姓名:张三年龄:15,性别:男
__invoke()
魔术方法
将对象当作函数来使用时,会自动调用该方法。通常不推荐这么做。
|
class A{ function __invoke(){ echo "<br />我是一个对象呀,你别把我当作一个函数来调用啊!" ; } } $obj = new A(); $obj (); //此时就会调用类中的方法:__invoke() |
希望本文所述对大家PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/Yeoman92/article/details/52851906
您可能感兴趣
- linux安装phpstudy(PHPStudy下如何为Apache安装SSL证书的方法步骤)
- php常驻进程(PHP 多进程与信号中断实现多任务常驻内存管理实例方法)
- php数据判断函数有哪些(PHP判断函数是否被定义的方法)
- php实现redis消息队列(redis+php实现微博三微博列表功能详解)
- php7处理方案(PHP7 安装event扩展的实现方法)
- php数据类型图解(php使用filter_var函数判断邮箱,url,ip格式示例)
- php支付接口(PHP实现的支付宝支付功能示例)
- phpstudy怎么升级mysql(phpStudy中升级MySQL版本到5.7.17的方法步骤)
- thinkphp6.0安装(使用composer安装使用thinkphp6.0框架问题视频教程)
- phpstudy服务器怎么设置(PHPStudy打开网页很慢的原因及解决方案)
- php提交表单验证表(php实现的表单验证类完整示例)
- php 实例代码解析(PHP反射学习入门示例)
- php自定义函数返回多少个值(PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法)
- 本地phpstudy搭建网站教程学习(phpstudy搭建本地网站服务器图文教程)
- php微信支付怎么做(ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解)
- php各种绕过姿势(php面试实现反射注入的详细方法)
- 英语难学吗(初中英语难学吗)
- 如何追女孩子(如何追女孩子的技巧和方法)
- 是不是快乐全被你拿走了(而是你得到的)
- 世界上只有妈妈好(世界上只有妈妈好的歌词)
- 为什么现在社会越来越卷了(现在社会为什么发展那么快呢)
- 直播带货能赚到很多钱吗(直播带货能赚到很多钱吗现在)
热门推荐
- sqlserver如何设置定时备份(SQL Server使用脚本实现自动备份的思路详解)
- JSON中的特殊字符
- laraveljob怎么运行脚本(Laravel-admin之修改操作日志的方法)
- springboot vue 异地登录(vue+springboot实现登录验证码)
- tornado异步编程(Tornado Web服务器中处理空白字符的解决方案)
- angularjs过滤器
- dede模板栏目调用(织梦DEDECMS5.7栏目列表页分页URL优化列表页重复的解决方案)
- supersocket分布式架构(ServerSocket默认邦定IP实现过程详解)
- mysql字段多有什么问题(MySQL编码不一致可能引起的一些问题)
- sql查询过程解析(SQL 联合查询与XML解析实例详解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9