2017-09-27 45 views
1

我讀PHP7的新功能,這無疑涉及到我這一個:什麼是PHP7的返回值類型聲明的目的

Returning values: Return type declarations

function sum($a, $b): float { 
    return $a + $b; 
} 

// Note that a float will be returned. 
var_dump(sum(1, 2)); 

我能找到的唯一目的是在界面定義中更具體(這是一個優點)。但是,是否有任何其他原因將它們納入每種方法?

+1

它還可以幫助您防止父類的重寫類型。如果你的類返回float,你的overrided方法也應該返回float。這雖然 –

+1

真的很有用其中一個原因可能是IDE類型檢查。這意味着IDE可以幫助你,只要它只接受bool就可以傳遞該變量的功能。 – Vastlik

+1

@Akintunde是不是[嚴格打字](http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration.strict)呢? – CarlosAS

回答

2

如果您正在編寫其他代碼使用的庫,最好定義一個良好的API,並聲明返回類型是其中的一部分。它可以避免人們不得不在源代碼中尋找解決辦法。

對於您自己的代碼用法,這是一個安全檢查,您正在編寫您的功能,並保持「計劃」。它鼓勵你的職能做一件事,並保持專注。如果某些事情沒有按照計劃進行,PHP本身在可能返回整數值或布爾型的函數的地方會有點混亂。這是非常糟糕的編碼。這意味着調用代碼必須爲兩種可能性編寫代碼,而不應該這樣做。如果你在你的函數中指定了返回類型,你將無法沿着這條路線走下去。

也像其他人所說的那樣,它可以幫助您的IDE計算出應該發生的事情。這很方便。 IDE還會利用這些phpdoc註釋註釋,但它們是註釋,所以它們在撒謊,並且實際上並沒有執行一個合同,所以不是真的......一件好事。

相關問題