PhpStorm无法识别PHP 7.4的属性类型提示

时间:2019-11-25 10:27:41

标签: php oop php-7.4

最近我发现,使用PHP 7.4,我们可以在类中键入提示属性。

这是我的代码

class Tournament {
    private Organization $organization;
    private array $teams;

    public function __construct() {
        $this->teams = array();
    }

    public function setOrganization(Organization $organization) {
        if (!$this->organization->equals($organization)) {
            $this->organization = $organization;
        }
    }
}

我使用PhpStorm,它向我警告($this->organization->equals(..)),说未找到所引用的方法。但是我的Organization类明确定义了这种方法:

class Organization {
    private array $tournaments;
    private array $users;
    private string $name;

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

    public function getName()
    {
        return $this->name;
    }

    public function getTournaments()
    {
        return $this->tournaments;
    }

    public function getUsers()
    {
        return $this->users;
    }

    // ...

    public function equals(Organization $organization) {
        return $organization->getName() == $this->getName();
    }
}

那为什么锦标赛类有问题?我已经指定了类型,因此我认为这应该可行。

1 个答案:

答案 0 :(得分:0)

类型提示将可用于PHP 7.4和更高版本。

但是您需要配置PhpStorm,以便它知道您所使用的语言的版本。

转到“设置”->“语言和框架”->“ PHP”,然后在此处设置语言级别,以使其指定为“ PHP 7.4”。像这样:

Check fiddle here