2008-12-23 40 views
8

Khi tôi xác định một đối tượng của một lớp học sử dụng mới như thế nàyTự động hoàn thành cho các đối tượng PHP với các lớp trong PDT/Netbeans?

$blah = new Whatever(); 

tôi nhận được autocomplete với $ blah. Nhưng làm thế nào để tôi làm điều đó khi tôi có $ blah như một tham số chức năng? Nếu không tự động hoàn thành, tôi chưa hoàn tất.

Chỉnh sửa: Làm cách nào để thực hiện nếu nó nằm trong phạm vi bao gồm và PDT hoặc Netbeans không thể tìm ra? Có cách nào để khai báo các kiểu cho các biến trong PHP không?

Trả lời

20

Phương pháp trong bình luận đầu tiên được gọi là "kiểu gián tiếp", nhưng bạn nên sử dụng một cách khôn ngoan. Giải pháp tốt hơn là phpDoc.

/** 
* Some description of function behaviour. 
* 
* @param Whatever $blah 
*/ 
public function myFunction($blah) 
{ 
    $blah-> 
    // Now $blah is Whatever object, autocompletion will work. 
} 

Bạn cũng có thể sử dụng nhận xét nội tuyến phpDoc giống hệt như vậy.

public function myFunction($blah) 
{ 
    /* @var $blah Whatever */ 
    $blah-> 
    // Now $blah is Whatever object, autocompletion will work. 
} 
+0

Alan, bạn đang nói điều này hoạt động trong PDT bởi vì trong lớp Netbeans Joe { công cộng $ a; công khai $ b; } /* @var $ joe Joe */ $ joe-> không cung cấp cho bạn tự động hoàn thành. –

+0

có, nhưng tôi đang sử dụng PDT 1.3 –

+0

Tôi vừa thử điều này trong Netbeans 6.9.1 và nó hoạt động giống như một sự quyến rũ. Theo quan điểm của tôi đơn giản hơn câu trả lời được chấp nhận, có vẻ như sự hỗ trợ php đã được cải thiện kể từ khi bình luận của Yar được thêm vào. – henrik

7

Cố gắng vượt qua định nghĩa lớp tham số vào hàm:

function myFunction(Whatever $blah) { 
} 
+0

hoạt động, nhưng bây giờ tôi đã mở rộng câu hỏi, hy vọng bạn không phiền! Cảm ơn câu trả lời tuyệt vời của bạn, điều đó đã giúp ích cho bạn. –

+0

Ah, và về "Chỉnh sửa": Tôi thực sự không biết làm thế nào để làm cho nó một cách thanh lịch. Nhưng cài đặt Eclipse + PDT của tôi giải quyết các tham số lớp trong các trường hợp tương tự tốt. – maxnk

+0

Được rồi, nếu không ai có thể đánh bại điều đó - rất có thể, nhưng có thể có một số cách để làm điều đó - tôi sẽ cho bạn câu trả lời tốt nhất. Hãy thử Netbeans, tôi vừa chuyển từ PDT ... bạn có thể đào nó. –

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