![](/img/trans.png)
[英]What is the purpose of the question marks before type declaration in PHP7 (?string or ?int)?
[英]What's the purpose of PHP7's returning values type declaration
我正在閱讀PHP7的新功能,對此我產生了疑問:
function sum($a, $b): float {
return $a + $b;
}
// Note that a float will be returned.
var_dump(sum(1, 2));
我能找到的唯一目的是在接口定義中更加具體(這是一個優勢)。 但是,還有其他理由將它們包括在每種方法中嗎?
如果您正在編寫一個庫供其他代碼使用,那么擁有一個定義明確的API會很好,並且聲明的返回類型是其中的一部分。 這樣可以省去人們在源代碼中進行搜索的麻煩。
對於您自己的代碼用法,這是一項安全檢查,以確保您正確編寫了函數並保持“按計划”。 它鼓勵您的職能去做一件事情,並保持專注。 PHP本身在某些地方有些混亂,在某些地方如果函數未按計划進行,可能會返回整數值或布爾值 。 這是非常糟糕的編碼。 這意味着調用代碼必須針對這兩種情況進行編碼,而不必這樣做。 如果您在函數上指定了返回類型,則將無法沿這條路線走。
就像其他人所說的那樣,它也可以幫助您的IDE確定應該發生的事情。 那很方便。 IDE也將利用這些phpdoc批注注釋,但是它們是注釋,因此它們是撒謊的,實際上並沒有強制執行合同,因此,這並不是一件好事。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.