公司專案上面看到不太理解的function用法,想請問這是什麼意思。
以下是問題範例程式:
public function A(): B{
return new B();
}
根據官方說明
http://php.net/manual/en/functions.returning-values.php
public function A(a) : B{
return a;
}
var_dump(A(1));
上面回傳的值會是 B(A(1));
但用在class又是怎麼一回事呢?
它跟下面程式差在哪裡?
public function A(){
return new B();
}
這樣的用法倒是沒用過。查了一下php官方的說明,似乎是與宣告變數類型運做有關係。
依照你專案的寫法,是得要回傳一個物件才行。
這因該是將原本php弱型態語言的寫法,直接強制變數應用的宣告寫法。
如宣告int的話
function sum($a, $b): int {
return $a + $b;
}
則其傳入的值一定得要是int值。
如 sum(1,2)
但如果用 sum(1, 2.5) 則會報錯誤