猿问

请教下类实例化调用问题。

下面我例出两个类a(假设a包含很多功能)、b(只是调用);

a 代码

namespace demo;class a{    public function index(){        return '我是index';        
    }    
    public function demo(){        return '我是demo';        
    }
}

我常见别人这样调用:

use demo\a;class b{    static function Amode (){        return new a;
    }    
    public Bindex(){        echo self::Amode()->index();
    }    
    public Bdata(){        echo self::Amode()->demo();
    }
    
}

上面这种方法比下面好使吗?

use demo\a;class b{    
    public Bindex(){
        $mode=new a();        echo $mode->index();
    }    
    public Bdata(){
         $mode=new a();        echo $mode->demo();
    }
    
}


小怪兽爱吃肉
浏览 395回答 2
2回答

慕容708150

本身两种办法我觉得差异不大,有更优解,可以了解下控制反转

慕婉清6462132

区别就是a的数据是否共享:self::Amode()->index() //能够保证用的是同一个a$mode=new a(); //每次都生成一个新的aecho $mode->index();
随时随地看视频慕课网APP
我要回答