是否有可能从调用父类的功能,直接在PHP
问题描述:
class P {
function fun() {
echo "P";
}
}
class Ch {
function fun() {
echo "Ch";
}
}
$x = new Ch();
如何从$ X调用父函数fun?是否有可能直接做,或我必须写:
function callParent {
parent::fun();
}
答
简单......没有在孩子同名的方法,在这种情况下,父类的方法会被孩子继承,并调用$ x-> fun()将调用继承的方法。
答
假设您的代码实际上意味着是这样的:
class P {
function fun() {
echo "P";
}
}
class Ch extends P {
function fun() {
echo "Ch";
}
function callParent{
parent::fun();
}
}
$x = new Ch();
你确实需要使用父::乐趣()调用P ::乐趣。
例如,如果您重写了必须调用的方法,以便正确初始化父类,那么这可能会很有用。
像:
class Parent {
function init($params) {
// some mandatory code
}
}
class Child extends Parent {
function init($params) {
parent::init();
// some more code
}
}
如果我想有这种方法吗? – liysd 2010-07-16 14:40:52
如果你想拥有该方法,那么你正在做一个明确的,受过教育的选择来覆盖父方法。因此,你正在使自己需要使用对parent :: init()的显式调用;如果你希望执行该代码。 – 2010-07-16 14:46:24