【问题标题】:Netbeans autocomplete class methodsNetbeans 自动完成类方法
【发布时间】:2017-12-15 16:35:50
【问题描述】:

我已经开始了一个使用 Google Drive API 的项目,通过 composer 安装 google 库,我主要使用 NetBeans IDE,我从未使用过面向对象的 PHP。我只使用 C#,所以我是 PHP 新手。问题是我有一些类,但自动完成没有显示类的任何属性或方法。

$files = $drive->files->listFiles(array())->getFiles();

foreach ($files as $file){
      $res['name'] = $file->getName();
      $fileres[] = $res;
  }

它应该像耳语方法 getId() 和 getTrashed(),但事实并非如此。我知道在 Visual Studio 中这会起作用,但在 NetBeans 中却不行。有什么方法可以让自动完成功能起作用吗?

【问题讨论】:

  • getFiles() 方法是否有指定的返回类型或@return 注释?
  • @ShiraNai7 它只是返回字符串
  • 那你为什么要迭代一个字符串?
  • @ShiraNai7 不管我在做什么,我要解决的问题是为什么不提供 $file 的自动完成方法
  • 是的,这很重要。如果getFiles() 返回一个string(根据你的说法),那么在迭代它时期望任何代码完成是没有意义的(你不能在 PHP 中迭代一个字符串)。所以要么你的代码是错误的,要么getFiles()实际上没有返回一个字符串..

标签: php netbeans autocomplete


【解决方案1】:

getFiles() method 被记录为返回 Google_Service_Drive_DriveFile

这可能是文档错误。它可能会返回Google_Service_Drive_DriveFile[](文件对象数组),因为这样更有意义......但我现在无法测试。

如果确实如此,您可以像这样提示$file 变量类型:

foreach ($files as $file) {
    /* @var $file Google_Service_Drive_DriveFile */
    $res['name'] = $file->getName();
    $fileres[] = $res;
}

那么你应该得到代码完成。

【讨论】:

  • 非常感谢,我还发现在 PHPStorm 中,代码补全有助于 NetBeans 所没有的。无论如何谢谢你。
猜你喜欢
  • 2011-11-22
  • 1970-01-01
  • 2011-02-14
  • 2011-11-10
  • 1970-01-01
  • 2012-06-06
  • 1970-01-01
  • 1970-01-01
  • 2014-03-04
相关资源
最近更新 更多