如何从其他类访问类对象

时间:2014-11-13 12:37:00

标签: php class oop

我的问题是,如果我可以从另一个类访问一个类对象,而第二个类没有扩展第一个类:

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

这可能吗?或者第二类是扩展第一类?

2 个答案:

答案 0 :(得分:2)

如果您想要像MySQL::query那样访问,那么query方法应该是静态的。

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

class Users {

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

答案 1 :(得分:0)

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

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);