在Netbeans PHP中定义变量类型

And*_*ndy 7 php netbeans

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

/* @var $variablename Type */
Run Code Online (Sandbox Code Playgroud)

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

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

 //Mymodel.php
 class MyModel extends Model {
      (...)
       $this->db-> //no hints
      (...)
 }
Run Code Online (Sandbox Code Playgroud)

是Netbeans限制还是我的错?

Álv*_*lez 8

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

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

    /**
     * @var Database $db Database connection instance
     */
    protected $db;
    
    Run Code Online (Sandbox Code Playgroud)
  2. 变量类型内联注释,/*以项目使用之前的某个位置开头并放置在某个位置:

    $foo = $this->db;
    /* @var $foo Database*/
    $foo->...
    
    Run Code Online (Sandbox Code Playgroud)

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

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


sha*_*yyx 4

首先,先定义变量类型,如下所示:

/* @var Database $db This is my Database object */
Run Code Online (Sandbox Code Playgroud)

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

class Model {

/**
 * @var Database $db This is my Database object
 */
protected $db;
Run Code Online (Sandbox Code Playgroud)

那么应该就没有什么问题了...