php魔术方法__tostring 5

publicfunction__tostring(){echo'helloword!';//为什么使用echo或var_dump()输出会报错使用return则不会报错呢... public function __tostring(){
echo 'hello word!'; //为什么使用echo或var_dump()输出会报错
使用return则不会报错呢
}
提示错误是:Catchable fatal error: Method Test::__toString() must return a string value in ...
public function __tostring(){
return 'hello word!'; //不会报错
}
展开
 我来答
徐临祥
高粉答主

2019-12-24 · 醉心答题,欢迎关注
知道小有建树答主
回答量:3380
采纳率:96%
帮助的人:94.4万
展开全部
__tostring()方法:在直接输出对象引用的时候,就不会产生错误,而是自动调用了__tostring()方法,输出__tostring()方法中返回的字符串

通俗来说就是 对象一般是使用print_r() 或 var_dump() 来打印访问

但对于一般闲的人来说直接 使用 echo 输出对象时,必定会报错的,原因是对象无法使用echo的。

这个时候如果想解决这个错误,咱们应该怎么操作呢?

可以很好的利用__tostring()这个魔术方法

但是切记使用__toString() 时返回值一定要使用return 来进行返回。

<?php
header("content-type:text/html;charset=utf-8");
class demo{
public $foo;
public function __construct($foo){
$this->foo=$foo;
}
//定义一个__toString()方法时,返加一个成员属性$foo
public function __toString(){
return $this->foo;
}
}
$demo=new demo('hello PHP成员');
echo $demo;
萧初时
2019-12-24 · 超过49用户采纳过TA的回答
知道答主
回答量:192
采纳率:88%
帮助的人:13.2万
展开全部
当echo一个对象的时候,会报错误

Object of class Person could not be converted to string

我们可以通过魔术方法__tostring()  把对象转成字符串

#!/usr/bin/php
<?php

class Person{
public $name = 'ghostwu';
public $age = 20;

function __toString(){
return json_encode( $this );
}
}

echo new Person();
?>

 继续改造php静态变量与方法与phar的使用

ghostconfig.php
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
生活勇着

2019-12-24 · TA获得超过4038个赞
知道大有可为答主
回答量:2.6万
采纳率:60%
帮助的人:1116万
展开全部
魔术的方法,魔术的方法就是把这个东西变得那个东西一般都是准备好的,准备好之后,你人家人家手快快速的,你看不出来?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
好运送给我和你
2019-12-24 · TA获得超过631个赞
知道答主
回答量:1424
采纳率:13%
帮助的人:97.8万
展开全部
魔兽方法有病的隐蔽性,但它的迷惑性展现给大众的是一种神奇变化方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孟子故里人

2019-12-24 · TA获得超过3679个赞
知道答主
回答量:7067
采纳率:23%
帮助的人:220万
展开全部
php魔术方法__tostring。太难了处理不了,请教专家。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式