标签:str getconf could not ref nbsp pos created public each
当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可以使用匿名类简化
标签:str getconf could not ref nbsp pos created public each
原文地址:https://www.cnblogs.com/ghostwu/p/8964682.html