我在 Netbeans 7.3 中创建了一个 php 项目。我有一个类(MYSQL_DB
)。当我想在定义该类的文件中访问其方法时,它会显示以下内容:
请注意,这超出了类定义范围(未使用$this
)。但是当我想在此文件之外访问其方法时,它什么也没显示:
问:在所有文件中输入类名(如第一张图片)时,有没有办法显示方法?
提前致谢!
答案1
我怀疑问题在于 Netbeans 不知道变量的类。(这在 PHP 中经常发生,因为它是弱类型。)在将值分配给变量后,立即添加一个特殊的类型提示注释:
$database=someFunction(); /* @var $database DatabaseClass */
此提示将告诉 Netbeans $database 的类型,允许它建议方法。如果您可以控制 someFunction 的来源,也可以在那里添加提示。请参阅https://blogs.oracle.com/netbeansphp/entry/defining_a_variable_type_in举出很多例子。
答案2
首先在声明变量的地方添加注释作为代码提示。在类属性中使用长格式注释:
/**
* @var \ClassName $varname
*/
private $varname;
在课程中你通常可以使用内联注释:
/* @var \ClassName $inlinevar */
$inlinevar = new ClassName();
您可能需要清除缓存,当自动完成功能对同一项目中的类不起作用时,这会有所帮助。在 Linux 上,查看主目录 ~/.cache/.netbeans/ 并删除项目版本的子目录(始终先备份以防出现问题)。
如果您的类位于另一个项目中,您可能需要将路径添加到另一个项目的根文件夹,以便 Netbeans 可以扫描该文件夹以查找类定义。