2015-12-22 1 views
3

J'ai rencontré quelques problèmes lors du test de PHP 7 avec PHPStorm 10. Est-ce un bug?PHP7 avec PHPStorm 10

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()); 

Dans tout navigateur est OK, mais PHPStorm me donner des erreurs (visibles dans le picture).

enter image description here

Je pense qu'il est un bug. Y a-t-il un moyen de résoudre ce problème? J'ai essayé d'utiliser EAP à partir de ce Site mais cela n'a pas résolu le problème.

+1

Avez-vous modifié les paramètres PHP de votre projet? Pour activer PHP 7? – jiboulex

+0

Juste par curiosité, changera la signature de votre constructeur pour utiliser '\ int $ destruction' pour éviter l'erreur? –

+0

@ Ne paniquez pas: Je ne pense pas que cela fonctionnerait comme int est un nom de classe interdite dans PHP 7 donc ce ne serait pas un problème d'espace de noms – jiboulex

Répondre

3

Pour activer PHP 7 en PHP Storm, allez à

Paramètres> Langues & Montages> PHP

Et changer le niveau de langage PHP dans la section environnement de développement "7".

+0

Malheureusement, l'interpréteur est réglé sur PHP 7 et la version de PHP est définie sur 7 :( – Mati