7

我找到了一种以这种方式说 netbeans 变量类型的方法:

/* @var $variablename Type */

但是在这种情况下没有提示(数据库是我的类):

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

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

是Netbeans限制还是我的错误?

4

2 回答 2

8

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

  1. 好的旧phpdoc块注释,以项目定义开头/**并放在项目定义之前:

    /**
     * @var Database $db Database connection instance
     */
    protected $db;
    
  2. 变量类型的内联注释,以use开头/*并放置在 item 之前的某处:

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

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

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

于 2012-12-17T15:50:42.487 回答
4

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

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

其次,我建议使用 phpdoc 注释,例如:

class Model {

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

那么应该没有问题...

于 2012-12-17T15:30:53.313 回答