php魔术方法__tostring

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php魔术方法__tostring相关的知识,希望对你有一定的参考价值。

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!'; //不会报错

__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;
参考技术A 当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
参考技术B 魔术的方法,魔术的方法就是把这个东西变得那个东西一般都是准备好的,准备好之后,你人家人家手快快速的,你看不出来? 参考技术C 魔兽方法有病的隐蔽性,但它的迷惑性展现给大众的是一种神奇变化方法 参考技术D php魔术方法__tostring。太难了处理不了,请教专家。

以上是关于php魔术方法__tostring的主要内容,如果未能解决你的问题,请参考以下文章

php PHP魔术方法__toString()

php魔术方法__tostring的应用

PHP魔术方法之__toString()方法

PHP __toString()魔术方法不返回字符串(SOLUTION)

php啥是魔术方法

PHP魔术方法和魔术变量总结