zoukankan      html  css  js  c++  java
  • 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可以使用匿名类简化

  • 相关阅读:
    主机连接不上虚拟机或虚拟机桥接没有网络
    asp web 报表
    heart or house?
    CPointer
    Raid
    Dos for by 随风
    不支持uri格式
    FabEdge V0.4 新特性:支持多集群通讯
    运维监控
    /etc缩写
  • 原文地址:https://www.cnblogs.com/ghostwu/p/8964682.html
Copyright © 2011-2022 走看看