1

按照这篇文章中的建议:php 类作为 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 是有效的回调”

我如何在这个类中调用另一个函数?

4

1 回答 1

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;
    }

}

?>

我希望这对您的情况有所帮助。只需询问您是否需要进一步说明。:)

于 2012-11-16T02:00:52.610 回答