【发布时间】:2017-09-08 17:50:03
【问题描述】:
我有以下情况:
class Main {
function get() {
return new Query();
}
}
class Order extends Main {
public $id;
public $name;
}
class Query {
/**
* @return Main
*/
function execute() {
/// some code here
return $parsedObject;
}
}
当我使用此代码执行()并获取订单对象(作为解析对象)时,我正在编写:
$order = new Order();
$result = $order->get()->execute();
$result->id; /// typehint not works, cuz $result is type of Main, not more concrete type Order
所以我的问题是 - 有没有办法将一种基(抽象类、接口)类实现传递给从该基类调用的方法,以获得创建对象的漂亮类型提示。因为我可以用他自己的字段创建扩展主类的用户。但是调用 new User()->get()->excute() 会给我同样的结果——一个 Main 类型的对象
【问题讨论】:
-
$result->$id无论如何都不起作用,首先它是$result->id但由于该属性是私有的,因此您无法直接访问它。 -
假设 props 可以公开访问,$result 调用 id prop。这不是问题的主要思想
-
我已经编辑了我的帖子,谢谢
标签: php phpdoc type-hinting