我有简单的PHP脚本:

$input = readline();

echo gettype($input);

?>

它从控制台读取用户输入.我试图实现的是正确获取数据类型.目前,$input是字符串类型.

我需要这样的东西:

Input Output

5 Integer

2.5 float

true Boolean

我不知道该怎么做.谢谢.

编辑:感谢@bcperth的答案,我实现了此工作代码:

while(true) {

$input = readline();

if($input == "END") return ;

if(is_numeric($input)) {

$sum = 0;

$sum += $input;

switch(gettype($sum)) {

case "integer": $type = "integer"; break;

case "double": $type = "floating point"; break;

}

echo "$input is $type type" . PHP_EOL;

}

if(strlen($input) == 1 && !is_numeric($input)) {

echo "$input is character type" . PHP_EOL;

} else if(strlen($input) > 1 && !is_numeric($input) && strtolower($input) != "true" && strtolower($input) != "false") {

echo "$input is string type" . PHP_EOL;

} if(strtolower($input) == "true" || strtolower($input) == "false") {

echo "$input is boolean type" . PHP_EOL;

}

}

?>

还尝试使用filter_var,效果很好:

while(true) {

$input = readline();

if($input == "END") return;

if(!empty($input)) {

if(filter_var($input, FILTER_VALIDATE_INT) || filter_var($input, FILTER_VALIDATE_INT) === 0) {

echo "$input is integer type" . PHP_EOL;

} else if(filter_var($input, FILTER_VALIDATE_FLOAT) || filter_var($input, FILTER_VALIDATE_FLOAT) === 0.0) {

echo "$input is floating point type" . PHP_EOL;

} else if(filter_var($input, FILTER_VALIDATE_BOOLEAN) || strtolower($input) == "false") {

echo "$input is boolean type" . PHP_EOL;

} else if(strlen($input) == 1) {

echo "$input is character type" . PHP_EOL;

} else {

echo "$input is string type" . PHP_EOL;

}

}

}

?>

php读入输入_php-读取用户输入并检查数据类型相关推荐

  1. c语言用户输入编程,C语言入门教程-Printf:读取用户输入

    Printf:读取用户输入 前面的程序很好,但要是如果能从用户那里读入值5和7而不是使用固定的值的话,那就更好了.可以改为下面的程序: #include int main() {int a, b, c ...

  2. linux获取read值,read命令读取用户输入

    read命令用于从终端或文件中读取用户输入,它读取整行输入,如果没有指定名称,读取的行被赋值给内部变量REPLY. read命令常用选项:-a,-p,-s,-t,-n 1.REPLY变量 $read ...

  3. scanner java重新输入_如何使用Scanner Java重复读取用户输入

    我正在尝试为我的程序创建一个简单的菜单来读取用户输入.这是代码: public void menu() { String command; System.out.println("To op ...

  4. Linux Shell 读取用户输入

    在Linux Shell下读取用户输入可以使用read命令. 用法: echo "Input something:" read input echo "Your inpu ...

  5. 编写一个Java应用程序,从键盘读取用户输入两个字符串,并重载3个函数分别实现这两个字符串的拼接、整数相加和浮点数相加。要进行异常处理,对输入的不符合要求的字符串提示给用户,不能使程序崩溃。

    编写一个Java应用程序,从键盘读取用户输入两个字符串,并重载3个函数分别实现这两个字符串的拼接.整数相加和浮点数相加.要进行异常处理,对输入的不符合要求的字符串提示给用户,不能使程序崩溃. pack ...

  6. java如何重复userinput_如何使用Scanner Java重复读取用户输入

    我正在尝试为我的程序创建一个简单的菜单来读取用户输入.这是代码: public void menu() { String command; System.out.println("To op ...

  7. 读取用户输入的账户名称,将账户名写入到数组保存

    读取用户输入的账户名称,将账户名写入到数组保存 #!/bin/bash #定义数组名称为 name,数组的下标为 i,小标从 0 开始,每输入一个账户名,下标加 1,继续存下一个账户 #最后,输入 o ...

  8. Java //PP2.6 编写一个应用程序,将英里转换为千米(1英里等于1.60935千米)。以浮点数类型读取用户输入的英里数

    Java程序设计教程(第七版) John Lewis & William Loftus 电子工业出版社 PP2.6 编写一个应用程序,将英里转换为千米(1英里等于1.60935千米).以浮点数 ...

  9. java循环输入直到,使用循环接受其他用户输入,直到用户输入结束输入的值

    我是Java的新手 . 我需要一些帮助,使用循环接受其他用户输入,直到用户输入结束输入的值 . 我的问题从语句"System.out.println("你完成了吗?输入大写的Y / ...

  10. Linux shell 学习笔记(10)— 处理用户输入(命令行读取参数、读取用户输入、超时处理)

    1. 命令行参数 向 shell 脚本传递数据的最基本方法是使用命令行参数.命令行参数允许在运行脚本时向命令行添加数据. $ ./addem 10 30 本例向脚本 addem 传递了两个命令行参数( ...

最新文章

  1. redis(3)redis的基础入门(java)
  2. python怎么让摄像头图像暂停然后在启动_双目摄像头测量距离
  3. 数字证书及在WCF中的应用
  4. python时间计算_python利用datetime模块计算时间差、当前时间多加一天、一小时、一分钟和常用操作...
  5. 超详细!一文教你如何备考HCIE!
  6. Maven实战(二)——POM重构之增还是删
  7. CSS 修饰图片的5种方法
  8. python中np.reshape与matlab中reshape区别,以及多axis的np.mean分析[探索6]
  9. 我的测试生活感悟4 - 谈谈面试
  10. idea如何远端调试
  11. 【TWVRP】基于matlab改进的遗传算法求解带时间窗约束多卫星任务规划问题【含Matlab源码 1774期】
  12. Python3.6 word批量转换为txt提取
  13. java字符常量_字符常量 java
  14. 用u盘进不了pe计算机意外地,u盘装系统启动不了无法进入pe怎么办
  15. android 微博 登录,Android第三方登录之微博登录
  16. Oracle中的数据类型---NUMBER
  17. 亚马逊资源名称 (ARN) 和 AWS 服务命名空间
  18. MySQL基础学习_第016章节_简单的查询语句
  19. Hides for Mac v5.6.0.1 一键隐藏所有应用
  20. git常用命令及Commit message规则

热门文章

  1. Linux禁止root用户远程登陆
  2. android 表格xml,【Android】利用表格布局,Android中xml文件与java的交互制作登录界面...
  3. go java nodejs 速度对比_除了node.js,Java、Python、Go 哪个适合web前端工程师
  4. 啥?不用安装Jre,SpringBoot项目也可以打包exe应用程序运行!
  5. windows server 2008安装桌面风格(桌面体验)
  6. js 解析url中search时存在中文乱码问题解决方案
  7. SpringBoot整合freemarker中自定义标签获取字典表的数据
  8. [Redis]c# redis缓存辅助类
  9. Android优化系列之ListView优化老生常谈
  10. 关于外键,再唠叨一下下