【问题标题】:Unusual type casting in PHPPHP中不寻常的类型转换
【发布时间】:2011-08-11 09:18:24
【问题描述】:

我们正在尝试创建一个对象,该对象的方法可以由 eclipse PDT 或 Zend Studio 自动完成,但我们遇到了一个问题,我想问你。

问题是; Eclipse 无法通过以下代码访问某个类的方法;

class Soup {
    private static $_obj;

    public function __construct(){}

    public static function getObj($objName){
        if(isset(self::$_obj)) {
            return self::$_obj;
        } else {
            self::$_obj = new $objName;
            return self::$_obj;
        }
    }
}

class Foo extends Obj {

}

class Obj {     
    public function test() {}
}
// This is what we are trying to reach;
Soup::getObj('Foo')->test();

在 PHP 中这没有问题,但在 Eclipse PDT 或 Zend Studio 中,自动完成没有完成 ->test() 部分。是否有代表 Eclipse PDT 的解决方案,或者是否有其他方法可以创建该类?

【问题讨论】:

  • 我在 Eclipse/Zend 上总是遇到这个问题...有一个复杂点,自动完成模块可以达到,但没有更多。
  • 我不知道 Eclipse,但是在 NetBeans 中使用 @return 添加 PHPdoc 注释就可以了
  • 您需要哪个 IDE 的帮助? Eclipse PDT 还是 Zend Studio?

标签: php eclipse zend-studio eclipse-pdt


【解决方案1】:

所有(大多数)IDE 都使用文档块来实现更高级的自动完成功能,Zend Studio 和 Eclipse 也是如此。一个好的 docblock 不仅可以使您的代码有良好的文档记录和 phpdoc 功能,而且还可以为您提供更好的代码帮助!

【讨论】:

    【解决方案2】:

    你不能,这不是 IDE 问题。

    在 php 中(与 java 不同)你不知道函数的返回类型。所以对于 php 来说是不可能知道 Soup:getObj('Foo') 会返回什么......也许是一个对象,也许是一个数组,或者它可能不会返回任何东西

    在 Netbeans 中,您可以通过在函数中添加文档来告诉他该函数返回一个 Foo 对象来帮助他

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2011-02-27
      • 2021-02-02
      • 2021-01-17
      • 2012-02-14
      • 2012-08-05
      • 1970-01-01
      • 1970-01-01
      • 2013-02-05
      相关资源
      最近更新 更多