所以以下是一个奇怪的问题,虽然我确信当谈到这种行为是如何发生时,人们会指责我做坏事,为了我正在进行的项目这是用例,我很想知道我是否遗漏了某些东西。
我有以下情况
class foo()
{
private $_bar;
public function __construct($bar)
{
$this->_bar = $bar;
}
public function doStuff()
{
include('doStuffCode.php');
}
}
doStuffCode.php:
$this->_bar->(this is where I'd like to get some type hinting)
我试图放入/* var $this->_bar Bar */
,但这似乎对我没有任何帮助。似乎我无法在特定的类变量中添加类型提示。现在的解决方法是设置一个名为$ bar的临时变量,在其上设置类型提示,然后使用它来获取我正在寻找的方法并将它们复制回正确的上下文。
我很好奇,如果我只是在做错事,做一些不支持的事情,误解我应该如何宣布javadoc,或者对这种类型暗示应该如何工作有一个根本的误解。
感谢您的帮助
答案 0 :(得分:3)
您需要在类
中定义$ _bar的类型 class foo()
{
/**
* @var Bar
*/
private $_bar;
public function __construct($bar)
{
$this->_bar = $bar;
}
public function doStuff()
{
include('doStuffCode.php');
}
}
然后在你提供的文件中提示:
/* @var $this foo */
这将是正确的方法。虽然我不确定私有变量是否可以通过这种方式暗示,因为包含文件内容的范围。