首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PhpStorm设置为8.1.7,但在8.0.*方法上抛出错误

PhpStorm设置为8.1.7,但在8.0.*方法上抛出错误
EN

Stack Overflow用户
提问于 2022-07-13 08:50:16
回答 2查看 84关注 0票数 1

我有一个PhpStorm不喜欢的代码片段:

代码语言:javascript
复制
public function __construct(LogFacade $logFacade)
{
    private LogFacade $logFacade
} ()

主要写的是Undefined constant 'LogFacade'Expected: semicolon

我们在带有PHP版本8.1.7的docker容器上运行:

代码语言:javascript
复制
martin@463a39853ae1:/web$ php -v
PHP 8.1.7 (cli) (built: Jun 13 2022 13:56:32) (ZTS)
Copyright (c) The PHP Group
Zend Engine v4.1.7, Copyright (c) Zend Technologies
martin@463a39853ae1:/web$

PhpStorm (语言level+interpreter)也是如此:

当我将其更改为旧版本时,它完全可以工作(,但该项目在整个place上都使用了第一个片段)。

代码语言:javascript
复制
private LogFacade $logFacade;

public function __construct(LogFacade $logFacade)
{
    $this->logFacade = $logFacade;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-13 09:46:03

第一个片段应该声明构造函数参数中的可见性。因此,不需要在构造函数体中再次引用它。

代码语言:javascript
复制
public function __construct(private LogFacade $logFacade) {}
票数 3
EN

Stack Overflow用户

发布于 2022-07-13 09:03:39

属性需要在类中声明,您的类应该如下所示:

代码语言:javascript
复制
class MyClass
{
    private LogFacade $logFacade;

    public function __construct(LogFacade $logFacade)
    {
        $this->logFacade = $logFacade;
    }
}

更多细节可以在这里找到:https://www.php.net/manual/en/language.oop5.visibility.php

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72963409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档