PHP7与PHPStorm 10

3

我在使用PHPStorm 10测试新的PHP 7时遇到了一些问题。这是一个bug吗?

File1.php

    namespace Game\Fields;


abstract class Field
{
    protected $resources = [];

    protected $requirements = [];

    protected $destruction;

    public function __construct (array $resources, array $requirements, int $destruction)
    {
        $this->resources = $resources;
        $this->requirements = $requirements;
        $this->destruction = $destruction;
    }

    public function getResources (): array
    {
        return $this->resources;
    }

    public function getRequirements (): int
    {
        return $this->requirements;
    }

    public function getDestruction (): int
    {
        return $this->destruction;
    }
}

class DeepDeath extends Field {}

class MysteryDark extends Field {}

class SunEnd extends Field {}

File2.php

declare(strict_types=1);

require_once __DIR__ . '/Fields/Fields.php';

$level = new \Game\Fields\DeepDeath([], [], 30);

echo($level->getDestruction());

在浏览器中一切正常,但PHPStorm给我报错(如图片所示)。

enter image description here

我认为这是一个错误。有没有什么方法可以解决这个问题?我尝试使用 Site 上的 EAP,但它并没有解决问题。


1
你改变了项目的PHP设置吗?以启用PHP 7? - jiboulex
只是出于好奇,将构造函数签名更改为使用\int $destruction能否防止错误呢? - Don't Panic
@别慌:我认为这不会起作用,因为在php 7中int是一个被禁止的类名,所以这不是一个命名空间问题。 - jiboulex
我只是猜测,但我在谷歌上搜索了一下,并找到了这个讨论,它似乎是关于这个问题的。此处讨论链接 - Don't Panic
1个回答

3
要在 PHP Storm 中启用 PHP 7,请按照以下步骤操作:
1. 进入设置界面:Settings > Languages & Frameworks > PHP 2. 在开发环境部分,将 PHP 语言级别更改为“7”。
记得保存修改。

很不幸,解释器设置为 PHP 7,而 PHP 的版本也是 7 :( - Mati

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接