0

正如标题所说,我的情况如下:

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 中 OOP 的初学者。希望那里的人可以帮助我。

4

2 回答 2

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 专业人士(在非乱序非编译语言中看不到这一点),但我相信你也可以通过将类 2 作为类 1 的扩展来解决这个问题。或者,如果您将您的第 1 类公开并公开第 1 类功能,然后只要new one事先使用 etc 对第 1 类进行实例化,那么您应该在您的函数内部有两个可以调用$one->one(); 但我不是 100% 的那个

于 2013-02-28T16:50:57.053 回答
1

虽然我不太确定我是否理解您的问题(因为所有 MySQL 的东西),但可以使用public关键字访问方法(= 对象中的函数):

    public function functionName( $parameter ) {
        \\ function stuff
    }
于 2013-02-28T16:51:56.837 回答