• 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();
    ?>

     继续改造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可以使用匿名类简化

  • 相关阅读:
    linux下SVN迁移
    hive-site.xml
    5.扩展 GROUP BY
    4.锁——避免重复启动同一程序
    1.执行计划探究(一)
    1.日期_星期
    3.放弃CHAR吧,在铸成大错之前!
    2.NULL 的问题
    1.ORACLE 尽量不使用隐式转换
    webservice
  • 原文地址:https://www.cnblogs.com/ghostwu/p/8964682.html
Copyright © 2020-2023  润新知