在WordPress插件类中自引用

时间:2012-11-15 21:31:24

标签: wordpress oop

遵循此帖子中的建议:php class as a plugin in wordpress

我已经创建了一个辅助类,可以与其他插件一起使用。在类文件中,我有一个激活类的声明,如:

function test_init() {

    $test = new Test();

} // End of test_init()

我可以通过执行以下操作来访问此类中的函数:

Test::my_function();

但是,我在引用这个类中的函数时遇到了问题。例如:

function my_function() {

    Test::other_func();

}

在这种情况下,我收到错误消息:“函数名称必须是字符串”

我尝试了$ this-> other_func,它返回错误:“Class_Using_The_Test_Class中没有函数”other_func“。

我试过self :: other_func,它返回错误:“函数名必须是字符串”

我尝试使用call_user_func()并获得:“call_user_func()期望参数1成为有效的回调”

如何调用此类中的其他函数?

1 个答案:

答案 0 :(得分:1)

您实际上并不需要激活该课程。我举个例子。

我们假设此代码位于helper-class.php

<?php

class Helper_Class {

    // Note: those are double underscores before the word 'construct'.
    function __construct() {

        // initialize/call things here.
        $this->init(); // this is how you call class functions.
    }

    function init() {
        // do some monkey-business

        return;
    }

    // we'll call this function from our other class.
    function some_function() {
        // do the fancy whizbang.
    }
}

?>

现在,在您的其他类文件中,您可以这样的内容:

<?php

// give ourselves access to the helper class.
require_once 'helper-class.php';

class Main_Class {

    // Note: those are double underscores before the word 'construct'.
    function __construct() {
        $this->init();
    }

    function init() {
        // classes can't be used until an object of that class is created.
        $helper_class_object = new Helper_Class;

        // now I can call functions in my helper class.
        $helper_class_object->some_function();

        return;
    }

}

?>

我希望这会对你的情况有所了解。请问您是否想要进一步澄清。 :)