php魔术方法__tostring的应用
Posted ghostwu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php魔术方法__tostring的应用相关的知识,希望对你有一定的参考价值。
当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(); ?>
ghostconfig.php
<?php class ghostconfig{ public $projName = \'\'; public $author = \'\'; function __tostring(){ return json_encode( $this ); } } ?>
ghostinit.php
require( "ghostconfig.php" ); class ghostinit{ static $v = \'ghost version is 1.1\'; static function init(){ $config = new ghostconfig(); echo "pls input project name?" . PHP_EOL; $config->projName = fgets( STDIN ); echo "pls input author?" . PHP_EOL; $config->author = fgets( STDIN ); echo "您输入的项目信息如下:" . PHP_EOL; echo $config; } static function getConfig( $conf ){ $std = new stdClass(); foreach( $conf as $k => $v ){ $std->$k = $v; } return $std; } function __tostring(){ return json_encode( $this ); } static function make(){ $pchar=new Phar("ghost.phar"); $pchar->buildFromDirectory(dirname(__FILE__)); $pchar->setStub($pchar->createDefaultStub(\'ghost\')); $pchar->compressFiles(Phar::GZ); } static function __callstatic( $m, $args ){ echo \'error function\'; } }
php7可以使用匿名类简化
以上是关于php魔术方法__tostring的应用的主要内容,如果未能解决你的问题,请参考以下文章