假设我有这个抽象的数据库表类:
abstract class DbTable {
/**
* Table records
* @var DatabaseRecordIF[]
*/
protected $records;
/**
* Returns the records.
* @return DatabaseRecordIf[]
*/
public function getRecords() {
return $this->records;
}
}
我有一个特定的数据库表类来存储表中的记录:
class MyTable extends DbTable { }
我有一个在该表中定义记录的类:
class MyTableRecord implements DatabaseRecordIf { }
我想告诉phpDocumentor MyTable::getRecords()
返回MyTableRecord[]
,而不仅仅是DatabaseRecordIf[]
。这可能吗?
有没有更好的方法来解决这个问题?
答案 0 :(得分:3)
phpDocumentor定义static
和self
以指定继承方法返回的类型。
self
使用此类型的类的对象,如果继承,它仍将表示最初定义它的类。
static
消耗此值的类的对象,如果继承它将表示子类。 (请参阅PHP手册中的后期静态绑定)。
所以 static 是返回子类型而不是父类型所需的类型。
/**
* Returns the records.
* @return static[]
*/
public function getRecords() {
return $this->records;
}