我的问题是,如果我可以从另一个类访问一个类对象,而第二个类没有扩展第一个类:
<?php
class MySQL {
public function query($data){
//do something
}
?>
<?php
class Users {
public function getUser($id){
MySQL::query($data); // or $MySQL->query();
return $something;
}
?>
这可能吗?或者第二类是扩展第一类?
答案 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);