2009-11-29 41 views
56

Có cách nào gợi ý cho WebIDE rằng một biến có một số loại không? Tôi phải lặp lại một mảng các đối tượng và không có khả năng tự động hoàn thành. này giúp trong ZendStudio:JetBrains WebIDE: gợi ý loại biến PHP?

/* @var ClassName $object */ 

Tôi biết có một tính năng trong JetBrains để khai báo một mảng của các đối tượng:

/** 
* @return ClassName[] 
*/ 

Nhưng chỉ hoạt động này với kiểu trả về chức năng của.

+0

Nó hoạt động với các mảng. Liệu nó làm việc với ArrayIterators mà lặp qua một loại cụ thể? – redestructa

Trả lời

97

/* @var ClassName $object */ là nhận xét PHPDOC không hợp lệ và không được phân tích cú pháp trong phiên bản hiện tại của Web IDE. Sử dụng dấu hoa thị kép để làm cho nó làm việc:

/** @var ClassName $object */ 

Ngoài ra, bạn có thể chú thích $array trong foreach($array as $var) với /** @var ClassName[] $array */$var loại sẽ được suy luận tự động.

+0

không biết về ký hiệu dấu ngoặc vuông – sanya

+2

Câu hỏi liên quan: Lớp PHP của tôi sử dụng ma thuật getter cho một biến và tôi muốn ràng buộc biến getter đó thành đối tượng Class, bất kỳ ý tưởng nào để làm điều đó? Vì tôi không thể xác định biến trong lớp của mình. –

+0

Wow .. chỉ googled cho vui và thực sự không có hy vọng rằng điều này thực sự sẽ là một điều .. Tôi không bao giờ là sai lầm như vậy trong cuộc sống của tôi và tôi hạnh phúc mà tôi đã sai! Tính năng này rất tuyệt, cảm ơn! :) –

19

Như đã chỉ ra, PhpStorm sẽ sử dụng khối PHPDoc thường xuyên:

/** @var ClassName $object */ 

Tuy nhiên, kể từ 2.1 Ngoài ra còn hỗ trợ cho Netbeans/Eclipse/Zend @var annotations:

/* @var $object ClassName */ 

Xin lưu ý các bình luận bắt đầu với /* thay vì /** (do đó nó sẽ không hiển thị nếu bạn tạo tài liệu thực tế với phpdoc). Ngoài ra, các đối số được trao đổi, mặc dù PhpStorm chấp nhận bất kỳ thứ tự:

/* @var ClassName $object */ 

Cuối cùng nhưng không kém, họ có thể đi trước hầu hết các dòng tùy ý mã (về mặt kỹ thuật, khối PHPDoc bị hạn chế đến các mục nhất định).

Các vấn đề liên quan