2017-09-27 4 views
1

の目的は何ですか:私はPHP7の新機能を読んでいると、この疑問はこの1つで私に来る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も返す必要があります。これは本当に便利です –

+1

他の理由の1つは、IDEのタイプチェックです。 IDEがboolだけを受け入れる場合、その変数を関数に渡すことができれば、IDEが役に立ちます。 – Vastlik

+1

@Akintundeはそれのために作られた[strict typing](http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration.strict)ではありませんか? – CarlosAS

答えて

2

他のコードを使用するライブラリを作成している場合は、明確に定義されたAPIを使用することをお勧めします。また、宣言された戻り値の型もその一部です。これは、ソースコード内でフェレットをしなければならない人を救うために保存します。

独自のコードを使用するには、関数を正しく書いていることと、「計画中」にとどまっていることを安全にチェックすることです。あなたの機能が1つのことを行い、集中し続けることを奨励します。 PHP自体は、何かが計画どおりに行かなかった場合に、整数値またはブール値を返す可能性のある関数を持つ場所ではちょっと混乱します。これはかなりひどいコーディングです。これは、呼び出しコードが両方の結果をコードする必要があることを意味します。関数で戻り値の型を指定すると、そのルートを終了することはできません。

また、他の人が言っているように、あなたのIDEが今後起こりそうなことを解決するのに役立ちます。それは便利です。 IDEはこれらのphpdoc注釈コメントを活用しますが、それらはコメントなので、それらはうそであり、実際に契約を強制することはありません。だから、本当に良いことではありません。

関連する問題