PHP:如何从父类变量访问子类函数



我正在尝试做一些事情,但显然我错过了一些东西。对不起,我是新手。

class PARENT_API {
    function __construct() {
    }
}
$api = new PARENT_API();
class common extends PARENT_API {
    function foo(){
        return 'Test!';
    }
}

为什么我不能这么做?

echo $api->common->foo();

我只是想把大型代码组织成类,难道我不能这样做吗?我缺少什么?

我认为您混淆了依赖性和可扩展性。。。

依赖性:父对象可能需要一个子对象来为其执行一些操作。它还允许您轻松切换子对象并更改父对象的操作方式。

可扩展性:子类可以从父类继承。可以说BClass也是一个AClass,可以做完全相同的事情,但略有不同。只有BClass可以评估AClass,因为BClass也是一个AClass。但事实并非如此!

这就是你的意思吗?

您需要访问类似的foo()方法

$api_1 = new common();
$api_1->foo();

我看到插件在这么做。$parent->childclass->function()或variable。我是不是忽略了什么?

我真的对此表示怀疑。我认为父母不能继承孩子。

首先,您的子类函数是:

class common extends PARENT_API {
    function foo(){
        echo 'Test!';
    }
}

但你这样称呼它:

echo $api->common->foo();

两个echo?将类函数更改为这样,以便返回输出:

class common extends PARENT_API {
    function foo(){
        return 'Test!';
    }
}

此外,它应该被称为:

$api_common = new common();
echo $api_common->foo();

EDIT执行class common extends PARENT_API时,您正在创建一个新的common类。因此,您不能调用PARENT_API,然后期望它被神奇地扩展。您需要致电common

相关内容

  • 没有找到相关文章

最新更新