php 数组成员是类,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 * /

标签:phpstorm,intellisense,ide,phpdoc,php

来源: https://codeday.me/bug/20191026/1938098.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值