2012-12-17 130 views
6

我已经找到了一种方法说,在这种方式的NetBeans的变量类型:Netbeans中定义的变量类型PHP

/* @var $variablename Type */ 

然而,在这种情况下,有没有提示(数据库是我的课):

//model.php 
abstract class Model { 
     /* @var $db Database */ 
     protected $db; 
     (...) 
} 

//Mymodel.php 
class MyModel extends Model { 
     (...) 
     $this->db-> //no hints 
     (...) 
} 

是Netbeans限制还是我的错误?

+0

好了,所有的类(数据库,模型和为MyModel)文件是在同一文件夹中,Model类我有数据库提示,但是我有他们甚至没有这样的评论,在MyModel我有从父类的提示,但没有与MyModel->数据库提示。版本7.2 – Andy

+0

变量的类型需要在变量名称的前面,它应该读取'@var Database $ db'而不是其他的方式。其他可能的问题来源:错误的包含路径(你可以STRG +点击进入你的$ db变量?)或者类中的属性访问而不是类方法。 – SaschaM78

回答

4

首先,先定义变量的类型,就像这样:

/* @var Database $db This is my Database object */ 

其次我会建议使用PHPDoc的评论,如:

class Model { 

/** 
* @var Database $db This is my Database object 
*/ 
protected $db; 

应该没有问题的话..

+0

它的工作原理:-)问题是一行注释 – Andy

+0

+1你让我意识到问题所在。我已经添加了完整性的答案。 –

+0

没有看到斜线后面只有一个星号,很好地观察到。 – SaschaM78

8

NetBeans可以使用两个相似但不同的注释注释:

  1. 好老phpdoc块注释,与/**将启动并正确放置在项目之前定义

    /** 
    * @var Database $db Database connection instance 
    */ 
    protected $db; 
    
  2. Variable type在线评论,与/*启动,并在项目使用在什么地方放置

    $foo = $this->db; 
    /* @var $foo Database*/ 
    $foo->... 
    

当docblock注释不可用或无帮助时,第二种类型派上用场,例如您正在使用未记录的第三方库或您的变量类型无法自动跟踪。

您已基本使用语法#2在上下文#1 ;-)

+0

好点! +1。 – shadyyx

+0

是的,我正在尝试方法中的(双星)/ **注释。将其更改为/ *和瞧。 –

+0

谢谢你。正是我在找的东西。 – MarthyM