建立流畅的界面时出现类型转换问题

时间:2018-12-04 15:44:54

标签: php design-patterns casting phpstorm intellisense

例如,我们有以下抽象类

<?php
    class AbstractClass {
        public function setParam(): AbstractClass {}
    }

    class ConcreteClass extends AbstractClass {
        public function test():void {}
    }

当您尝试像这样使用它

<?php
(new ConcreteClass())->setParam()->test();

然后在setParam之后,我们将只看到setParam方法,因为setParam返回AbstractClass。我试图用PHP-doc setParamAbsractClass内标记@return self,但这是行不通的。

这个问题有解决方案吗?

1 个答案:

答案 0 :(得分:2)

要解决此问题,您可以使用select * from Order as o join Invoice as i on (o.Supplier = i.Supplier and o.Value between i.ValueMinus10Percent and i.ValuePlus10Percent); PHP-doc属性

@return static

此示例中的所有内容都会正确突出显示。