我正在尝试做某事,我显然似乎错过了一些东西。我很抱歉这件事。
class PARENT_API {
function __construct() {
}
}
$api = new PARENT_API();
class common extends PARENT_API {
function foo(){
return 'Test!';
}
}
为什么我不能这样做?
echo $api->common->foo();
我只是想将大型代码组织到类中,我不能这样做,我缺少什么?
答案 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
。