php - 使用单例而不是新运算符检索对象时 netbeans 自动完成?

标签 php netbeans

当我使用“new”运算符实例化一个类时,netbeans 可以毫无问题地自动完成对象的成员。

$instance = new Singleton();
$instance-> // shows test() method

但是当我使用单例检索对象时,它无法自动完成检索到的对象中的成员。

getInstance 代码如下所示:

public function test() {
    echo "hello";
}

public static function getInstance() {
if ( ! is_object(self::$_instance)) {
    self::$_instance = new self();
    self::$_instance->initialize();
}
return self::$_instance;
}

所以我使用:

$instance = Singleton::getInstance();
$instance-> // no autocompletion!

有没有人遇到同样的问题?

我该如何解决?

谢谢!

最佳答案

您可以在分配之前添加注释以指示 $instance 是哪种类型:

/* @var $instance Singleton */
$instance = Singleton::getInstance();


你会得到自动完成:


(来源:pascal-martin.fr)

(使用最近每晚构建的 netbeans 进行测试)



另一种解决方案是在 getInstance() 方法的声明中添加一个文档 block ,以指示它返回 Singleton 类的实例:

/**
 * @return Singleton
 */
public static function getInstance() {

}


然后,您还将获得自动完成功能:


(来源:pascal-martin.fr)

关于php - 使用单例而不是新运算符检索对象时 netbeans 自动完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2796730/

相关文章:

java - 为什么我没有得到最新的输出?

Netbeans 中的 Java 代码可以工作,但通过 cmd 提示符执行 jar 会出现 nosuchmethod 错误异常

java - 用于调试的 ant 任务不起作用 : Cause: the name is undefined

java - 尝试在 NetBeans 上使用 JavaFX 创建 Maven 项目?

php - PHP 中的 MySQL 递归查询替换

php - 购物车项目未显示在客户 View 中

PhpSpreadsheet - 下载文件而不是保存文件

php - fatal error : Uncaught Error: Unsupported operand types

php - Linux 上的 Web 开发(字体渲染与 Windows 不同)

java - 网 bean : “java.lang.OutOfMemoryError: Java heap space”