php魔术方法__tostring的应用

2018-06-22 05:39:02来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

当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

<?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可以使用匿名类简化

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:js单图片上传

下一篇:提高PHP开发效率, PhpStorm必装的几款插件