繁体   English   中英

如何从另一个类访问一个类对象

[英]How to access a class object from an other class

我的问题是我是否可以从另一个类访问一个类对象,而第二个类却不扩展第一个类:

<?php 
class MySQL {
    public function query($data){
        //do something
    }
?>
<?php 
class Users {
    public function getUser($id){
        MySQL::query($data); // or $MySQL->query();
        return $something;
    } 
?>

这可能吗? 还是第二类正在扩展第一类?

如果要像这样访问MySQL::query ,则query方法应该是静态的。

否则,您需要从MySQL类实例化一个新对象:

class Users {

    public function getUser($id) {
        //MySQL::query($data); //Static way
        $MySQL = new MySQL();
        $something = $MySQL->query($mydata);
        return $something;
    }
}

在依赖注入的世界中,它将看起来像这样:

class MySQL {
    public function query($data){
        //do something
    }
}

class Users {
    private $mysql;

    public __construct($mysql){
        $this->mysql = $mysql
    }

    public function getUser($id){
        $this->mysql->query($data);
        return $something;
    } 
}

$mysql = new MySql();
$users = new Users($mysql);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM