让我们有以下类(class):
class baseClass {
function method() {
echo 'A';
}
}
trait mixin {
function mixinFunction() {
... /// <-- problem here
}
}
class currentClass {
use mixin;
function method() {
mixinFunction();
}
}
...
$object = new currentClass();
$object->method();
是否可以在调用 $object->method();
时从 trait 执行 baseClass::method()
到 echo 'A' 而无需更改此类/方法结构而不调用非静态方法作为静态方法?
编辑:
这是个愚蠢的问题,答案是在 trait 方法中使用 parent::method()
,它会调用 baseClass::method()
。
最佳答案
从traitcopy
到class的all方法,必须以->
或::
调用方法。
trait mixin {
function mixinFunction() {
... /// <-- problem here
}
}
class currentClass {
use mixin;
function method() {
$this->mixinFunction();
}
}
...
$object = new currentClass();
$object->method();
关于PHP:如何从当前类中使用的特征方法调用父方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23904325/