You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中readline()函数未读取全部输入问题求助

解决PHP readline()跳过输入的问题

嘿,这个问题我之前也踩过坑!你的代码里有个典型的小失误——你在while循环的条件里调用了一次readline(),紧接着在循环体里又调用了一次,这就导致每次循环会读取两次输入:

  • 第一次输入被while(readline()!="stop")里的readline()消耗掉了,只用来判断是否退出循环,根本没被保存和输出;
  • 第二次输入才被循环体里的readline()读取,然后输出出来。

只有输入"stop"的时候,while条件里的readline()直接读到了终止指令,循环立刻退出,所以不需要第二次输入就能被识别。

修正方案

解决思路很简单:把读取到的输入先存到一个变量里,用同一个变量完成判断和输出,这样就只会读取一次输入了。

写法一(紧凑版)

<?php
while(($input = readline()) != "stop") {
    echo "You have entered: $input\n";
}
?>

写法二(逻辑更清晰)

<?php
while(true) {
    $input = readline();
    if($input == "stop") {
        break;
    }
    echo "You have entered: $input\n";
}
?>

这样每次循环只会读取一次输入,既用它判断是否退出,又用它输出内容,就不会出现需要重复输入的问题啦。

内容的提问来源于stack exchange,提问作者Veselin Kutov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:13:33