2017-02-19 14 views
3

最近、PHPの学習が始まりました。強く型付けされた言語(C++、Java)に慣れてきたので、タイプヒントと戻り値の型宣言を使用することをお勧めします。しかし、私はプリミティブの戻り値の型宣言を使用しようとしているとき、私は関数が正しい型を返さないことを示す致命的なエラーを取得します。ここでPHP:名前空間での戻り値の宣言

はコードの例です:

<?php 
namespace Foo; 

class Bar { 

    public function bar() : boolean { 
     return true; 
    } 

} 

$bar = new Bar(); 
$bar->bar(); 

?> 

これはバー::バーはFooの\ブール型の値を返さないことを示す、致命的なエラーが発生します。だから私はに関数プロトタイプを変更することにより、グローバル名前空間に頼ることを試みた:

public function bar() : \boolean 

しかし、私は私の関数はboolean型の値を返さないことを示す致命的なエラーが発生しました。私は、PHPは、グローバルな名前空間でブール型と呼ばれる型を探していて、プリミティブ型ではないと思います。それで、私の関数がプリミティブ型booleanの値を返すようにするにはどうすればいいでしょうか?

+1

タイプは 'bool'ではない'ブール 'です。 – Roman

+1

また、各ファイルの最初の行に 'declare(strict_types = 1);'を入れてください。 –

答えて

3

ブール値の型ヒントは、実際にはboolです。これを試してください:

<?php 
namespace Foo; 

class Bar { 
    public function bar() : bool { 
     return true; 
    } 
} 

$bar = new Bar(); 
$bar->bar(); 
+0

くそー、私は馬鹿だと感じる。解説ありがとうございました:) – PandarinDev

+0

Nah、それは愚かではありません:) PHPでは、クラスは小文字で始まり、スカラー型ヒントのチェックが始まるまで、 'bool'型ヒントを' boolean '(コメントで)。これは、ツールを使用してエラーを発見するのに役立つことができない、別のケースです。 –

関連する問題