条件が true の場合、「ok」が表示されないのはなぜですか? 条件がトリガーされた場合に「いいえ」と表示される理由がわかりません。
あなたの else ブロックは何も返さないので、最初の試行で数字の 5 を取得しない限り、else ブロックに移動します。このブロックはそれ自体を呼び出しますが、呼び出しは行いません。実際には最初の呼び出しに任意の値を返します。
else
関数が何も返さない場合は、NULL が返されます。
NULL
また、戻り値が最初の呼び出しまでバブルアップされるように、else ブロックに return ステートメントを追加します。
return
ところで、これが実際のコードではなく、単なるテストであることを願います。これは、基本的に ok をエコーする非常に複雑な方法にすぎないからです。 echo 'no';
ok
echo 'no';
再帰呼び出しの場合は、else 条件を get_number(); から return get_number(); に変更してください。
get_number();
return get_number();
また、if 条件で return ステートメントを 2 つ使用するのはなぜですか?
最初のステートメントを保持し、2 番目の return ステートメントを削除できます。
あなたの
else
ブロックは何も返さないので、最初の試行で数字の 5 を取得しない限り、else
ブロックに移動します。このブロックはそれ自体を呼び出しますが、呼び出しは行いません。実際には最初の呼び出しに任意の値を返します。関数が何も返さない場合は、
NULL
が返されます。また、戻り値が最初の呼び出しまでバブルアップされるように、
リーリーelse
ブロックにreturn
ステートメントを追加します。ところで、これが実際のコードではなく、単なるテストであることを願います。これは、基本的に
に到達することはありません。ok
をエコーする非常に複雑な方法にすぎないからです。echo 'no';
再帰呼び出しの場合は、else 条件を
get_number();
からreturn get_number();
に変更してください。また、if 条件で return ステートメントを 2 つ使用するのはなぜですか?
リーリー最初のステートメントを保持し、2 番目の return ステートメントを削除できます。