从另一个类访问类的功能

时间:2013-02-28 16:41:53

标签: php class mysqli

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

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

2 个答案:

答案 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
    }