JetBrains WebIDE : PHP 변수 유형 힌팅?


81

WebIDE에게 변수에 어떤 유형이 있음을 알리는 방법이 있습니까? 객체 배열을 반복해야하는데 자동 완성 기능이 없습니다. 이것은 ZendStudio에서 도움이됩니다.

/* @var ClassName $object */

JetBrains에 개체 배열을 선언하는 기능이 있다는 것을 알고 있습니다.

/**
 * @return ClassName[]
 */

그러나 이것은 함수의 반환 유형에서만 작동합니다.


그것은 배열과 함께 작동합니다. 특정 유형을 반복하는 ArrayIterators와 함께 작동합니까?
redestructa

답변:


144

/* @var ClassName $object */유효하지 않은 PHPDOC 주석이며 현재 버전의 Web IDE에서 구문 분석되지 않습니다. 작동하려면 이중 별표를 사용하십시오.

/** @var ClassName $object */

또한, 주석을 달 수 있습니다 $arrayforeach($array as $var)/** @var ClassName[] $array */$var자동으로 추론 할 것이다 입력합니다.


대괄호 표기법에 대해 알고하지 않았다
SandorRacz

2
관련 질문 : 내 PHP 클래스는 변수에 대해 매직 게터를 사용하고 해당 게터 변수를 클래스 개체에 바인딩하고 싶습니다. 어떻게 할 수 있습니까? 내 클래스에서 변수를 정의 할 수 없기 때문에.
Sanket Sahu 2014

와우 .. 그냥 재미있게 봤는데이게 진짜 일이 될 거라는 희망은 없었어 이 기능은 정말 멋져요, 감사합니다! :)
Cagatay Ulubay

29

이미 지적했듯이 PhpStorm은 일반 phpdoc 블록을 사용합니다.

/** @var ClassName $object */

그러나 2.1 부터 Netbeans / Eclipse / Zend @var 주석 도 지원합니다 .

/* @var $object ClassName */

와 주석이 시작주의 /*가 아니라 /**(당신이하는 PHPDoc과 실제 문서를 생성하는 경우 따라서는 표시되지 않습니다)를. 또한 PhpStorm은 모든 순서를 수락하지만 인수가 교환됩니다.

/* @var ClassName $object */

마지막으로, 거의 모든 임의의 코드 줄 앞에 올 수 있습니다 (기술적으로 phpdoc 블록은 특정 항목으로 제한됨).


편집 : 2019 년 현재 Netbeans / Eclipse / Zend @var 주석은 대부분 버려진 것으로 보입니다. NetBeans 11은 더 이상 지원하지 않으며 일반적으로 다른 IDE에서 지원하지 않습니다. 다른 구문을 사용하는 것이 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.