のdocblockがコーダ機能は、ありません、それはそれは単なるコメントであるとして、それは、PHPパーサーによって無視されますかを説明するために使用することができるものですより多くの情報を見つけることができます誰か(またはあなた)がコードを読んだときに、その関数が何をしているのかが分かりやすいため、すべての関数とメソッドの上にdocblockを置くことをお勧めします。
A IDEは通常、オートコンプリートのためにのdocblockを使ってブロックをコード
と一致しない場合、docblockには、しかし、しかし
function foo(string $text): bool
{
return true;
}
と等価ではありませんstring
と:bool
によって上書きされます
/**
* @param string $text
* @return bool
*/
function foo($text) {
return true;
}
最初の例で:bool
が強制そのfoo()
true
またはfalse
のいずれかを返します。それ以外の場合、PHPはその型への戻り値のキャストを試みるか、致命的なエラーをスローします。 $text
の場合はタイプヒントstring
と同じです。最初のパラメータは、単に期待リターンがtrue
かのどちらかであると言う、そうでない場合、PHPは文字列または致命的なエラーにそれをキャストしようとし
をスローされます@return bool
と@param string
は全く何も強制しない、文字列型の値でなければなりません。
function foo(string $a) :bool
{
var_dump($a); // string '10'
return "string";
}
var_dump(foo(10)); // bool true
が問題なし、PHPは文字列に10
をキャストすることができますし、"string"
がtrue
があります:false
は、次の例を見てみましょう
注意を(おそらくPDOオブジェクトに何かをしようとしているので、おそらく、さらに上の他の問題に実行している)最後の1つの作業を行うのdocblockを使用して、次の
function foo(PDO $a) :bool
{
var_dump($a);
return "string";
}
var_dump(foo(10)); // fatal error, 10 is not PDO and can not be cast to PDO
かかわらの問題点:PHPはありませんまだブロック型で指定しなければならない混合型の型ヒント(つまり文字列配列)をサポートしていません
phpdocを実行して、パラメータと結果の型を宣言したときの動作を確認しましたか?それはあなたにあなたの答えを与えるでしょう。 –
@JohnCondeは、この構文を認識できるPHPDocではありませんか? –
@MarcBrillault彼が言っていることは次のとおりです:**試してみてください** – Xatenev