2014-09-30 2 views
0

내에서 배열 실패 test '를'중첩 '배열의 멤버로 사용합니다.
PHPStorm은 중첩 된 배열과 멤버가 있음을 인식하지 못하는 것 같습니다.PHPStorm 코드 완성 내가이 기본 코드를 배열

버그입니까, 내가 잘못 했습니까?

나는 완료 지원을 얻기 위해 다른 해결책을 시도 논평에 따르면,
행운으로 중 하나

는 IDE에서 나를 위해
class test 
    { 
     public static $nested = array('test' => 'nada'); 
} 

    function doit() 
    { 
     $completeme = test::$nested; 
     $completeme['']; // no completion working 

     /** @var test::nested $completeme */ 
     $completeme = test::$nested; 
     $completeme['']; // no completion working 
    } 

같은 문제가 클래스 내부 배열이 시간을.
test :: nested [ ''] < <이 작동하면 완료됩니다. 하지만 그 사본을 만들 자마자 나는 다시 완성을하거나 phpdoc을 사용하여 유형을 지정하는 방법을 찾지 못했습니다.

+1

이 기능은 구현되지 않았습니다. 심지어 첫 번째 레벨 배열의 키를 기억하면 상당한 오버 헤드 (메모리 + CPU)가 추가됩니다. 이 점과 대부분의 경우 첫 번째 수준이면 충분하다는 사실을 고려하면 다른 수준의 구현은 단순히 보류 상태에 놓이게됩니다. – LazyOne

+0

그들은 강제로 재귀 완료를 위해 PHPdoc 매개 변수를 추가해야합니다 :/ 다른 방법을 시도했는데, 대신 클래스를 사용해 보았는데 문제가 남아 있습니다. 이제 첫 번째 레벨 배열이지만 복사본을 만들 때 완료 할 수 없습니다. – John

+0

나는 (실제 코드에 접근 할 수 없기 때문에) 여기에 잘못 될 수있다. 그러나 내가 아는 한, 배열 변수 키를 실제 배열/변수 이름에 연결한다. 그런 할당 (다른 변수)은 일 (적어도 나는 그것을 위해 일하는 것을 본 적이 없다). 이 기능은 상당히 제한된 사용 사례를 가지고 있으며 주로 전역 배열 ($ _SERVER 등) 또는 클래스/함수 내의 배열 (예 : 클래스 구성 세부 정보를 보유하는 클래스의 $ cfg' 속성 (별도의 필드)). – LazyOne

답변

0

이 기능은 구현되지 않았습니다 (original array keys support ticket).

AFAIK도 첫 번째 수준의 배열에 대한 키를 기억하면 상당한 오버 헤드가 추가됩니다 (메모리 + CPU - 실제 프로젝트 및 배열/변수의 사용 빈도에 따라 다름). 이 점과 대부분의 경우 첫 번째 수준이면 충분하다는 사실을 고려하면 다른 수준의 구현은 단순히 보류 상태에 놓이게됩니다.

https://youtrack.jetbrains.com/issue/WI-6845 - 진행 상황을 알리는 별표/투표/의견.

+0

하지만 제 두 번째 예가 중요하지 않다고 생각합니까? 보통 PHPdoc 주석 @var로 해결할 수 있지만이 경우에는 사용할 수 없습니다. – John

+0

AFAIK AFAIK는 범위에서 작업 중입니다. PHPDoc 주석과 함께 작동하는 것을 보지 못했습니다. 모든 제안 - http://youtrack.jetbrains.com/issues/WI의 이슈 트래커에서 기존 티켓에 대해 의견을 말하거나 새 티켓을 제출하십시오. 현재 로선 현시대 ... 1) 최근 버전의 배열 키 작업에 별다른 진전이 없었고 2) 앞서 언급 한 티켓이 특정 버전 (아직 일반 "xx"- 미래 버전) – LazyOne