2008-12-23 19 views
8

ben $ blah için otomatik tamamlama olsun buPHP için Otomatik Tamamlama PDT/Netbeans'te sınıfları olan nesneler?

$blah = new Whatever(); 

gibi yeni kullanan bir sınıfın bir nesnesi tanımlarken. Ama bir işlev parametresi olarak $ blah olduğunda bunu nasıl yapabilirim? Otomatik tamamlama olmadan, eksik.

Düzenleme: İçinde eğer nasıl yaparım bir içerme ve PDT veya NetBeans onu anlamaya olamaz? PHP'de değişkenler için türleri bildirmenin bir yolu var mı? İlk yorumunda

function myFunction(Whatever $blah) { 
} 

cevap

20

Yöntemi "tipi ipucu" denir, ama akıllıca olduğunu kullanmalısınız:

+0

Alan, bunun nedeni NetBeans sınıfına Joe { kamu $ a içinde PDT çalışır diyorsun; public $ b; } /* @var $ joe Joe */ $ joe-> size otomatik tamamlama getirmez. –

+0

evet, ama ben PDT 1.3 –

+0

kullanıyorum ben sadece NetBeans 6.9.1 bu denenmiş ve bir cazibe gibi çalışır. Benim düşüncemde kabul edilen cevaptan daha basit, Yar'ın yorumu eklendiğinden beri php desteğinin iyileştiği görülüyor. – henrik

7

fonksiyonu içine parametre sınıfı tanımı geçmek deneyin. Daha iyi bir çözüm phpDoc.

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

Ayrıca, tam olarak aynı şeyi yapan bir satır içi phpDoc yorumunu da kullanabilirsiniz.

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

çalışır, ancak şimdi soruyu genişlettim, umursamıyorsunuz umarım! Büyük cevabınız için teşekkürler, bu zaten yardımcı oluyor. –

+0

Ah ve "Düzenleme" hakkında: Gerçekten nasıl zarif bir şekilde yapılacağını bilmiyorum. Ama Eclipse + PDT kurulumum, benzer durumlardaki sınıf parametrelerini iyi çözüyor. – maxnk

+0

Tamam, kimse o yenebilir - çok mümkün, ama belki bunu yapmak için biraz commmenty yolu yoktur - Size en iyi cevabı vereceğiz. Netbeans'i dene, sadece PDT'den geçtim ... kazabilirsin. –