猿问

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

下面我例出两个类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();
    }
    
}

qq_花开花谢_0
浏览 454回答 3
3回答

慕森卡

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

芜湖不芜

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