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