2017-01-19 9 views
1

PHP関数にコロンを使用して:どのように私は、誰かがこのようなコードを書きことがわかっ

class Abc 
{ 
    public function foo(int $bar) : string {} 
} 

:は、関数内で何を意味するのでしょうか?それはトリックか何ですか? stringboolまたはarrayまたはintに変更すると、どのような影響がありますか?

私は: xxxが必要な理由を理解しておらず、いつ使用するのですか?戻り値の型宣言、PHP 7.

あなたはコロンの後に参照型に導入された機能である

+0

戻り値の型を定義するだけです。 –

+0

http://php.net/manual/en/functions.returning-values.phpの – apokryfos

答えて

5

は、機能が返されるタイプです。

2つのオプションがあります。
デフォルトでは、返される値は返される必要がある型に変換されます。
あなたの場合、それは常に文字列に変換されます。

厳密な型指定が有効な場合(declare(strict_types=1);)、出力は文字列である必要があります。そうでない場合は、TypeErrorがスローされます。

どちらの方法でも:開発者は、この場合は戻り値の型が常に文字列であることを常に確信しています。

戻り値の型を定義する必要はありません。戻り値の型が必要でない場合は、その型を残すことができます。その場合の戻り値の型は何でもかまいません。

+0

のマニュアルを確認してください – user7440009

0

戻り値の型宣言です。あなたの例では、関数は文字列を返さなければならないことを意味します。戻り値がストリング可能な場合(例えば、__toString()が定義されているオブジェクトの場合)、文字列にキャストされます。そうでない場合はエラーになります。

0

関数の戻り値の型が宣言されています。

function foo (int $bar) : string { } 

int $bar部分は$バーパラメータは整数でなければならないと言う、と: string部分は、関数は、文字列を返しますと言います。関数がintを渡さないか文字列を返さない場合は、TypeErrorがスローされます。

関連する問題