Вызов статического метода из родительского класса

У меня есть следующая иерархия классов: 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;
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]