php __tostring 与 tostring
程序员文章站
2024-01-27 15:39:10
...
原文:
问:内容是一样,不知道前面那两个特殊的下划线有什么意义,是同一个类中的两个方法?
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 . '
'; //自动调用(隐式)__toString转成stringecho $my->toString() . '
'; //调用(显式)toString去转成stringecho $my->__toString() . '
'; //如果这样调用, 代码会不好看echo (string)$my . '
';
__toString()会在需要转成字符串时, 会隐式自动调用它, 在PHP内部. 这个也是来自JAVA的. 建议在__toString()中调用toString(), 这样就不会代码重复了.
转自: 单党育的BLOG.PHP -toString()辨析.http://blog.sina.com.cn/s/blog_569767bf01000c37.html
上一篇: 不同场景分析:MySQL 升级的最佳实践_MySQL
下一篇: PHP通过串口实现发送短信
推荐阅读
-
国内C源码PHP框架选择与评价 Yaf Yar Swoole workerman?
-
php __tostring 与 tostring
-
php in_array 函数使用说明与in_array需要注意的地方说明_PHP
-
PHP与MongoDB简介|安全|M+PHP应用实例详解_PHP教程
-
浅析PHP中的UNICODE 编码与解码
-
php正确禁用eval函数与误区介绍
-
php中__destruct与register_shutdown_function执行的先后顺序问题,destruct
-
php 上一篇与下一篇文章代码
-
php foreach与for语句用法区别介绍_PHP教程
-
分享链接 php+ajax实现内容获取与动态修改解决方法