正如标题所说,我的情况如下:
require_once("connect.php") //database connection file
class one {
private $mysqli;
function __construct ($dbi) {
$this -> mysqli = $dbi;
}
function one {
// ... function using things like $this -> mysqli -> prepare and so on...
}
}
并且,在同一个文件中:
class two {
private $mysqli;
function __construct ($dbi) {
$this -> mysqli = $dbi;
}
function two {
// here I need to access the function "one" of the class "one"
// If i do something like $one = new one ($mysqli) I get an error on the __construct
}
}
我真的很生气,但我相信这并不困难,因为我是PHP的初学者。希望那里的人可以帮助我。
答案 0 :(得分:1)
忽略mysqli问题不应该是这样的
$one = new one ($this->mysqli);
$two = new two($this->mysqli);
$two->two($one->one); // call pass function from one into two
并且您将2的声明更改为
function two($functiontorun) {
现在我在php中不是OO专业人员(不要看非乱序非编译语言)但我相信你也可以通过将class 2作为class 1的扩展来解决这个问题。
或者,如果你将你的1级公开并且公开一个公共,那么只要第1级用new one
等实例化,那么你应该在你的函数内部两个能够只调用$one->one();
但是我那不是100%
答案 1 :(得分:1)
虽然我不太确定我是否理解你的问题(因为所有MySQL的东西),但可以使用public
关键字来访问方法(=对象内的函数):
public function functionName( $parameter ) {
\\ function stuff
}