我有以下类层次结构:MDLUser
继承自MDLPersistentObject
在MDLPersistentObject
我有一个返回数组的静态方法。在MDLUser
我覆盖了静态方法,使其返回MDLPersistentObject
' 数组,添加自己的数据,然后返回新数组。
但是当我parent::myArrayReturningMethod()
在里面调用它时,MDLUser
它只会返回MDLUser
' 的实现(即缺少来自 的数组数据MDLPersistentObject
。但是,如果我把它称为不好的做法MDLPersistentObject::myArrayReturningMethod()
,那么它会返回我所期望的。
调用静态方法的父实现不是parent::
正确的后期静态绑定方法吗?
如果您想知道我的代码是什么样的:
MDLPersistentObject 的方法:
static public function Neo4j_Labels_In_Client( Everyman\Neo4j\Client $client )
{
//
// Create a label called `MDLPersistentObject`
//
$mdlobject_label = $client->makeLabel( get_called_class() );
//
// Return the label in an array
//
$labels = Array(
$mdlobject_label
);
return $labels;
}
MDLUser的方法:
static public function Neo4j_Labels_In_Client( Everyman\Neo4j\Client $client )
{
//
// Get the parent labels
//
$labels = parent::Neo4j_Labels_In_Client( $client );
//
// Add the new labels
//
$user_label = $client->makeLabel( get_called_class() );
array_push( $labels, $user_label );
//
// Return labels
//
return $labels;
}