LoginSignup
derasado
@derasado (Sado)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

PHPのechoの挙動について

解決したいこと

PHPのechoの挙動について知りたい

発生している問題・エラー

出ているエラーメッセージを入力
または、問題・エラーが起きている画像をここにドラッグアンドドロップ

### 該当するソースコード
```言語名PHP
echo '読書ログを登録して下さい' . PHP_EOL;
echo '書籍名:';
$bookTitle = fgets(STDIN);  //ここで一回echoが止まる

echo '登録が完了しました' . PHP_EOL  . PHP_EOL; //ここから下のechoがなんで一回表示されないか疑問です。

echo '読書ログを表示します' . PHP_EOL;
echo  '書籍名:' . $bookTitle . PHP_EOL;

自分で試したこと

ターミナルの方で、書籍名:の部分を記入すると登録が完了しました。から下のechoが出力されるのですが
なぜそのような挙動なのか教えて頂きたいです。

宜しくお願い致します。

0

1Answer

結論 echoではなくてfgets(STDIN)の処理待ちで止まっています

$bookTitle = fgets(STDIN);  //ここで一回echoが止まる

上記のfgets(STDIN)の部分が、「キーボードからの入力を受け付ける」という意味です。
キーボードからの入力を変数に代入する為に、入力する値が確定するまで次には進みません。

蛇足ですが、JavaScriptには似たようなものにpromptがあります。
こちらもユーザーが何かを入力するまで後の処理が行われません。

0

Comments

  1. @derasado

    Questioner
    ご回答いただきましてありがとうございます。
    検証していたのですが、やはりですか・・・

    すっきりしました!
    ありがとうございました!

Your answer might help someone💌