php __tostring 与 tostring
function __toString() {return $this->content;}//输出字符串function toString() {return $this->content; }
前一个是魔术函数, 在需要字符串值的地方会自动调用它进行对象的类型转换.
后一个需要在代码中明确调用才有机会执行.
class MyClass {public function __toString(){return 'call __toString()';}public function toString(){return 'call toString()';} }$my = new MyClass(); echo $my . '<br />'; //自动调用(隐式)__toString转成string echo $my->toString() . '<br />'; //调用(显式)toString去转成string echo $my->__toString() . '<br />'; //如果这样调用, 代码会不好看 echo (string)$my . '<br />';
__toString()会在需要转成字符串时, 会隐式自动调用它, 在PHP内部. 这个也是来自JAVA的. 建议在__toString()中调用toString(), 这样就不会代码重复了.
转自:
单党育的BLOG.PHP -toString()辨析.http://blog.sina.com.cn/s/blog_569767bf01000c37.html
php __tostring 与 tostring相关推荐
- lua元表和元方法 《lua程序设计》 13章 读书笔记
lua中每个值都有一个元表,talble和userdata可以有各自独立的元表,而其它类型的值则共享其类型所属的单一元表.lua在创建table时不会创建元表. t = {} print(getmet ...
- php反序列化java_PHP反序列化漏洞简介及相关技巧小结
*严正声明:本文仅限于技术讨论与分享,严禁用于非法途径 要学习PHP反序列漏洞,先了解下PHP序列化和反序列化是什么东西. php程序为了保存和转储对象,提供了序列化的方法,php序列化是为了在程序运 ...
- 【转贴】Lua 5.0 参考手册
作者: Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes Copyright © 2003 Tecgraf, PUC ...
- PHP反序列化漏洞总结
一. 基础知识 1.什么是反序列化漏洞: 程序未对用户输入的序列化字符串进行检测,导致攻击者可以控制反序列化过程,通过在参数中注入一些代码,从而达到代码执行,SQL 注入,目录遍历等不可控后果,危害较 ...
- lua的元表metatable及元方法
前言 元表对应的英文是metatable,元方法是metamethod.我们都知道,在C++中,两个类是无法直接相加的,但是,如果你重载了"+"符号,就可以进行类的加法运算.在Lu ...
- php反序列化总结与学习
基础知识: 1.php类与对象 2.魔术函数 3.序列化方法 类与对象 <?php class test{public $var = "hello world";public ...
- php反序列化漏洞实验,PHP反序列化漏洞简介及相关技巧小结
原标题:PHP反序列化漏洞简介及相关技巧小结 *严正声明:本文仅限于技术讨论与分享,严禁用于非法途径 要学习PHP反序列漏洞,先了解下PHP序列化和反序列化是什么东西. php程序为了保存和转储对象, ...
- 《Programming in Lua 3》读书笔记(十)
这一部分应该挺重要的,Lua中唯一的数据结构便是table,几乎所有的的数据操作都是在table的基础上进行.而本文提到的元表和元方法,便是帮助table实现更强大的功能而设计的. 日期:2014.7 ...
- Lua程序设计 | 模块和包、泛型迭代器和for、元表和元方法
From<Programming in Lua> by Roberto Ierusalimschy 文章目录 模块和包 函数 require 模块重命名 搜索路径 搜索器 Lua语言中编写 ...
最新文章
- R语言可视化R原生plot函数与ggplot可视化结果组合、整合输出实战:原生R绘图plot函数可视化、ggplot2包可视化、R原生plot函数与ggplot可视化结果组合
- 把巧克力球送上天,玛氏用Uni Marketing 打造网红零食
- NYOJ 240 小明的调查统计(二)
- 快速弄懂内存字节对齐
- 了解React Native中的不同JavaScript环境
- linux桌面图标大小,ubuntu17.10修改桌面图标大小的方法
- 2014完美世界校招笔试题及答案
- 阿里云智能编码插件Cosy,提升开发效率杠杠滴!
- 【EF】对象名 'dbo.EdmMetadata' 无效。
- 能够修改证件照的软件有哪些?分享两种好用的修改工具
- OpenGL 纹理基础与索引
- kettle优化之提高MySQL读写速度
- HDU 4408 Minimum Spanning Tree 最小生成树计数
- java fock join 列子
- 谷歌变坏了?Chrome 已成众矢之的
- ubuntu 16.04 LTS 安装搜狗拼音输入法步骤详解
- 解决黑群晖故障-抱歉,您所指定的页面不存在
- 聚华祥科技:数据分析对于店铺运营的意义
- 【b站黑马程序员C++视频学习笔记-多态案例三-电脑组装】
- 记住这五种人,值得你一辈子深交
热门文章
- VTK:Math之HomogeneousLeastSquares
- OpenCV使用基本算法检测颜色检查器
- OpenGL camera相机的实例
- OpenGL多光源Multiple lights
- C++bucket sort桶排序的实现算法(附完整源码)
- QT的QMutableListIterator类的使用
- C语言Fibonacci 数列
- C++访问权限与继承
- python求两数最大公因数_『用python求俩个数的最大公约数和最小公倍数』
- c++ 智能指针_详解 C++ 11 中的智能指针