我正在尝试做一些事情,但显然我错过了一些东西。对不起,我是新手。
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
。