アクセス可能性が保護されていると宣言されているが、魔法の__set-methodを介して直接設定できる属性を持つオブジェクト「ユーザー」があります。
PhpStorm は、この明らかな矛盾を右側の大きな赤い列で示します。
何が起こっているのかをPhpStormに説明して、これがエラーとして表示されないようにすることはできますか?
編集 :
私はPhpStorm 2.1.4を使用しています
さて、ここで問題を例示するコードをいくつか示します(これまでに提案されたAlexeyの回避策と一緒に、悲しいことに私にはそれを行いません):
c.php:
<?php
/**
* @property mixed $a
*/
class c1
{
protected $a;
public function __construct() { $this->a = __CLASS__; }
public function __get($n) { return $this->{$n}; }
}
/**
* @property $a mixed
*/
class c2
{
protected $a;
public function __construct() { $this->a = __CLASS__; }
public function __get($n) { return $this->{$n}; }
}
test.php
<?php
require "c.php";
$c1 = new c1();
var_dump($c1->a);
$c2 = new c2();
var_dump($c2->a);
そして出力:
string 'c1' (length=2)
string 'c2' (length=2)
そしてPhpStormでどのように見えるか:
私の目標:
PhpStorm に設計を「理解」させるか、この問題以外のエラー検出を損なうことなく、どこにでもある迷惑な赤いマークを取り除くだけです。