微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PhpStorm:如何分辨数组成员的var类型?

我使用PHPStorm 2016.2.1 IDE.我有一个类型化的数组(所有成员都属于同一类,已知的类),我希望IDE知道该类型,以便它可以帮助我完成自动完成/智能化.

class MyClass{    
     /**
     * @var array
     */
    public $userArray;

    public addUser($uid){ $this->$userArray[$uid] = new User($uid); }

    public processUser($uid){

        $oUser = $this->$userArray[$uid];
            //since the PHP array can contain anything, the IDE makes 
            //no assumption about what data type $oUser is. How to let it 
            //kNow that it's of type User?
    }
}

我努力了…

 /**
 * @var User
 */
public $oUser = ...;

并且

 /**
 * @type User
 */
public $oUser = ...;

到目前为止,我要做的唯一一件事就是使用getter函数

/**
* @return User
*/
function getUser($uid){ return $this->$userArray[$uid]; }

function processUser($uid){
    //Now the IDE kNows the type of $oUser
    $oUser = $this->getUser($uid);
}

但是,为了获得更好的IDE支持而使用不需要的函数调用来降低脚本速度似乎是个坏主意.

知道如何让PHPStorm知道变量的类型吗?甚至更好:如何确定数组将在该数组的PHPDoc元数据中包含哪种类型?

解决方法:

如您所知,对于类变量,您只需

@var用户

对于局部变量,它不是官方支持的格式,但您还必须指定变量名称

@var用户$oUser

特定于PHPStorm,您需要使用双星号(我认为这是唯一需要它的IDE,请考虑一下):

/ ** @var用户$oUser * /

有关更多信息,请参见PHPDoc manual

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐