PHP 5可以做一些(有限)type hinting,但是,在我看來,在真實世界的項目中,類型通常在doc註釋中描述。例如,而不是這樣的:PHP類型提示 - 代碼與註釋
/**
* Test method
*/
function test(SomeType $param1) {
...
}
會有更常見是
/**
* Test method
*
* @param SomeType param1
*/
function test($param1) {
...
}
什麼是兩種方法的優點和缺點?如果我正確地假設PhpDoc方法更常見,那爲什麼?爲什麼人們不會更多地使用內置的語言功能?
編輯:第三個選擇是使用這兩種方法相結合:
/**
* Test method
*
* @param SomeType param1
*/
function test(SomeType $param1) {
...
}
不過,我個人還沒有看到這種使用過於頻繁(看着像Symfony的或PHPUnit的庫),這似乎也就像做一些工作沒有多少額外的好處說實話。也許這就是爲什麼它不經常出現的原因。
在第一個中,你也可以使用'@param SomeType $ param1'。它阻止你傳遞除SomeType之外的任何類型的類型。其次將只顯示你在phpDoc中,但'$ param1'可以是任何類型。 – vaso123 2014-12-19 10:54:43
好點,我已經更新了OP。 – Borek 2014-12-19 11:01:19
如果您使用的是自動完成的IDE,您還可以鍵入提示內聯,這會隨時派上用場:/ * @var $ somevar \ YourNamespace \ YourObject */ – Jon 2014-12-19 11:02:52