2011-06-15 52 views
4

可能重复:
PHPDoc for variable-length arrays of arguments如何获取PHP关联数组索引的智能感知?

每当我键入$_SERVER[''],然后按Ctrl +空格它让我可以索引列表。我怎样才能使我创建的数组成为可能?

+0

评论你不能(但我不太确定,所以我正在发表评论) – dynamic 2011-06-15 13:00:06

+0

好吧,所有的PHP函数都是为'NetBeans 7.0 \ php \ phpstubs \'中的自动完成目的而定义的,但是我看不到任何对那里有'$ _SERVER'(也没有任何可能的值),所以我放弃了。不过我可能会在那附近的某个地方。 – Spudley 2011-06-15 13:34:26

+0

在没有能够做到你想要的东西的时候,我想你可以为你已知的数组键设置常量。如果他们都开始相同,那么你可以从中获得相当不错的自动完成。 – Spudley 2011-06-15 15:27:03

回答

3

$_SERVER的代码完成提供了人们从关联数组中获取的典型值的提示。它在NetBeans源代码的某个地方被硬编码。对于任意数组,NetBeans不知道任何数组中使用的键,因此不提供提示。它甚至可以证明它是impossible可靠地实现这样的功能,所以我认为你在这里运气不好。

+1

它是一个耻辱,它不在配置,因为它可能是很好的,让用户添加他们自己的数组,类似地工作。即使不可能做到可靠,如果我的代码中有一个数组,我知道只有一组已知的键,但能够为其添加自动完成将会很好。好吧,如果这是不可能的,这是不可能的,但它会很好。 – Spudley 2011-06-15 15:25:20

+0

我仍然可以对编辑器实现任何类型的提示,它应该如何建议或实现跨阵列键的建议让我们说在给定的文件中使用已经使用的键。它将无法检测到它是哪个数组,但假设您不在一个文件中使用许多数组,它可能会减少键入。 – NoxArt 2013-06-06 14:24:49

1

如果您使用变量作为对象,您可以使用属性和phpDOC for each property制作一个虚拟空类,声明该类的对象,并且netbeans将自动完成属性(对象的键)。

<?php 
    namespace Models\Geo; 
/** 
* Results from GeoNames. 
* Dummy class for autocompletition only 
* See http://trac/wiki/Geo 
* 
* @property string $countryName 
* @property string $adminCode1 
* ... 
* @property string $population 
* 
* @category BNT 
* @package Library 
*/ 
class GeoNamesResult 
{ 
} 
?> 

然后在NetBeans代码

<?php 
/* @var $obj \Models\Geo\GeoNamesResult */ 
$obj-> // will autocomplete with countryName, adminCode1 etc... 
?> 

当然,如果一个函数返回$ OBJ它具有PHPDoc的@返回,就没有必要使用@var