私はphp7でリターンタイプのヒントを行うことができることを知っています。PHPの戻り値の型ヒント、オブジェクトまたはブール値?
function getUser($pdo, $username) : User
{
}
ここで、Userは返されるオブジェクトです。ユーザーが戻って、SQLに見つからない場合
しかし、代わりにユーザーオブジェクトの'false'
ができます:
Uncaught TypeError: Return value of UserFind::findUser() must be an instance of User, boolean returned
は、しかし、どのようなSQLがユーザーを見つけることができない場合は?ユーザーが存在しない場合、どのようにしてbooleanを返すことができますか?このシナリオでは、戻り値のヒントを無視する必要がありますか?
EDIT:「PHP 7のNullable戻り型」と私の質問はほぼ同じですが、私は2つの型のうちの1つを返す方法があるかどうかを尋ねて質問します。たとえば、オブジェクトが存在しない場合は、オブジェクトまたは文字列を返します。
可能な重複を返すことができると言うドキュメントブロックを発行http://stackoverflow.com/questions/33608821/nullable-return-types-in- php7) –
私の最初の反応は常に「例外を使う」ため、私はいつもこのような疑問を見つけます。そして、私は、例外はPHPのいわゆる "赤毛の踏み台"と同じように多くのことを覚えています。 –
@ IgnacioVazquez-Abrams PHPは一般的に、一般的に例外に対する別のアプローチを採用しています。例えば、Pythonはそれらをほぼすべてのものに使用します。 PHPはそうではありません。例外的に、一般的にはかなり遅いので、どちらのケースにも役立ちません。 – bwoebi