php - 在 for 循环中验证 readline 输入 (CLI)
问题描述
循环上面的输入验证工作得很好,但不能循环工作。输入不应允许:字符串和负数。任何解决方法都可以做到这一点,或者只是使用内部循环不可行?是的,我知道可以通过其他方式检查最大输入数,但我对“for 循环”的这种特殊情况感兴趣。
$amount = readline("Enter amount of inputs: ");
if (!is_numeric($amount) || !(0 < $amount)){
echo "Invalid input";
exit;
}
$numbers = [];
for ($i = 1; $i <= $amount; $i++){
$numbers[] = readline("Input number {$i}: ");
if (!is_numeric($amount) || !(0 < $amount)){
echo "Invalid input";
exit;
}
}
$largestNumbers = max($numbers);
$numbersList = implode(",", $numbers);
echo "The largest number of $numbersList is $largestNumbers";
解决方案
你为什么要检查$amount
循环,你正在阅读$numbers
?由于您正在读取数组,因此您需要指定索引:
for ($i = 1; $i <= $amount; $i++){
$numbers[$i] = readline("Input number {$i}: ");
if (!is_numeric($numbers[$i]) || !(0 < $numbers[$i])){
echo "Invalid input";
exit;
}
}
我可能会($numbers[$i] <= 0)
改用。
推荐阅读
- uml - 如何绘制带有嵌套 if 语句的 UML 图?
- multi-select - Slack 应用程序是否支持消息菜单中的多选下拉菜单?
- c - 套接字的半关闭是否会导致 epoll 停止接收事件?
- keras - 即使添加回调后最好的模型也没有保存
- airflow - 如何自动重新安排气流任务
- image - 订阅 ROS Image 和 CameraInfo sensor.msgs 格式
- kubernetes - kubernetes rbac 能否秘密控制访问路径
- java - 无法写入 JSON:(是 java.lang.NullPointerException);嵌套异常是 com.fasterxml.jackson.databind.JsonMappingException
- sql - 有人可以解释为什么我的代码没有错误地执行吗?我已经做了研究,但我看不出我在哪里犯了错误
- python - 使用 Matplotlib 模仿 Origin 中的瀑布图