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

时间:2013-12-12 17:53:41

标签: php class oop

我正在尝试做某事,我显然似乎错过了一些东西。我很抱歉这件事。

class PARENT_API {
    function __construct() {

    }
}
$api = new PARENT_API();

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

为什么我不能这样做?

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

我只是想将大型代码组织到类中,我不能这样做,我缺少什么?

3 个答案:

答案 0 :(得分:1)

我认为你混淆了依赖性和可扩展性......

依赖:父对象可能需要子对象才能在封面下执行某些操作。它还允许您轻松切换子对象并更改父对象的操作方式。

可扩展性:子类可以从父类继承。可以说BClass也是一个AClass,可以做同样的事情,但略有不同。只有BClass可以评估AClass,因为BClass也是一个AClass,但反之则不然!

这是你的意思吗?

答案 1 :(得分:0)

您需要像这样访问foo()方法

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

我看过插件正在做这件事。 $ parent-> childclass-> function()或变量。   我忽略了什么吗?

我真的很怀疑。我不认为父母可以继承孩子。

答案 2 :(得分:0)

除此之外,您的子类功能是:

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();

编辑当您执行class common extends PARENT_API时,您正在创建新的common课程。因此,您无法调用PARENT_API,然后期望它被神奇地扩展。您需要致电common