它有什麼優勢,爲參數提供類型:函數參數前面的PHP類型,好還是壞?
public static function DoStuff(string $str) {
echo $str;
}
相比,不使用它們?
public static function DoStuff($str) {
echo $str;
}
如果我聲明我的類型,它可能運行得更快嗎?
它有什麼優勢,爲參數提供類型:函數參數前面的PHP類型,好還是壞?
public static function DoStuff(string $str) {
echo $str;
}
相比,不使用它們?
public static function DoStuff($str) {
echo $str;
}
如果我聲明我的類型,它可能運行得更快嗎?
您不能(使用PHP的當前版本)指定標量類型,例如string或int。你只能指定一個類/接口或數組。
手冊的相關頁面:Type Hinting。
我看到使用類型提示至少有一個很大的優點:可讀性。很容易看出函數/方法期望的參數類型。
有些人會認爲這是一個缺點,如果你不尊重類型提示並傳遞一些非類型有效的參數,你將會得到一個可捕獲的致命錯誤。然而,
。您應該使用或不使用該功能。
總之,個人意見:我經常使用這些類型的提示,就這樣:
此答案已過時,請參閱http://php.net/manual/en/functions.arguments.php#functions.arguments.type-claclaration – Blauhirn
而不是將其稱爲「類型提示」,現在稱爲「類型聲明」。否則,答案仍然與我相關。 – WhiteHotLoveTiger
請在撰寫本文時參考PHP的最新版本,因爲如上所述,此答案不再適用於當前版本的PHP。 – dctucker
一般來說,類型檢查/類型提示是一件好事,因爲它提供編譯器/解釋器必要的信息來做更好的錯誤檢查。當你不鍵入提示時,你的程序可能會默默地崩潰,而不會產生描述性錯誤。
的好處是,如果有人試圖使用不正確的功能(如使用一個類來代替另一種或者是不使用數組時,他們應該),你會得到一個錯誤的時候了。
但是,除了對象或數組之外,你無法做到這一點 - 所以你的例子中的字符串將不起作用。
隨着更多檢查的發生,它幾乎肯定會運行得更慢。
優勢三,我在PHP:
我不確定是否通過使用類型提高了性能。
爲什麼不進行基準測試並查看? –