我有两个班,一个是家长班,一个是子班.每当我try 将子类中的方法与父类中的方法链接在一起时,就会出现问题.VS代码报告误报.

class BaseClass
{
protected $agent;

protected $report;

public function __construct()
{
    
}

public function setAgent($agent) : self
{
    $this->agent = $agent;

    return $this;
}

public function setReport($report) : self
{
    $this->report = $report;

    return $this;
}

public function getAgent() : User
{
    return $this->agent;
}

public function getReport()
{
    return $this->report;
}
}

这是一个 children 班:

  class ChildClass extends BaseClass
  {
    public function __construct()
    {
        
    }

    public function process(string $status)
    {
        //some code here
    }
   }

我是这么说的:

    $child = new ChildClass();
    $child->setAgent($this->user)
                  ->setReport($this->report)
                  ->process($status);
                 
 

VS代码报告方法Process()未定义,并用红色下划线.代码在使用和测试中都运行良好.在VS代码中看到红线和误报让我很烦恼.有没有办法在VS代码上解决这个问题?

推荐答案

You need to return static:

    /**
     * @return static
     */
    public function setAgent($agent): self
    {
        $this->agent = $agent;

        return $this;
    }

    /**
     * @return static
     */
    public function setReport($report): self
    {
        $this->report = $report;

        return $this;
    }

但毕竟这取决于你的代码--林特.

Php相关问答推荐

如何发送woocommerce订单跟踪码与短信

使用WooCommerce本机产品短码时不考虑价格筛选(_SHORT CODE)

make dd()如何正确工作?¨

允许在WooCommerce管理员优惠券列表中显示自定义优惠券类型

MULTI UPDATE Laravel为什么只能更新我的第一行

有没有办法为整个PHP应用程序启用严格类型

是否有条件判断是否发布了另一个Wordpress页面?

从WooCommerce管理订单汇总中隐藏原始小计行

有没有办法像引用枚举一样引用注册表中的对象?

将一个表中的行连接为不同表MYSQL中的一列

htaccess 重定向子域错误的 url

WooCommerce 有关新订单的附加邮箱通知,其中包含具体详细信息

根据所选付款方式启用/禁用 WooCommerce 所需的 checkout 字段

Symfony:指定 data_class 时,提交的表单获取初始化前不得访问

如何将文件上传添加到 WooCommerce 结帐?

我试图在我的视图上显示从数据库中获取的数据,但我无法显示它.拉维尔 10.x /

PHP 将数组值插入到 csv 列

为什么在 phpunit 的开头测试 PHP_VERSION?

使用 GROUP_CONCAT 规范化/转置来自查询的数据

如何在 php/laravel 中获取元素在数组中的位置