【发布时间】:2018-03-01 08:11:06
【问题描述】:
这是我的代码。
$fr = fopen("php://stdin", "r");
$input = fgets($fr);
if (preg_match('/^-?[0-9]{1,4}$/', $input)) {
echo "Integer.";
} else if (preg_match('/^[-+]?[0-9]*\.?[0-9]+$/', $input)) {
echo "Float.";
} else if (preg_match('/[a-zA-Z\s]^[0-9]/', $input)) {
echo "string.";
}
我将从输入的命令行获取$input 变量。我需要找到变量是 int、float、string 的数据类型。
尝试了gettype() 方法,但它始终是字符串。所以只尝试了preg_match。
虽然在这方面我也没有得到正确的输出。
例如:1.2e3 我得到的是字符串
【问题讨论】:
-
来自标准输入的所有内容都是字符串。另外,你的问题是什么?
-
您提前知道您可以收到哪些可能的类型吗?
-
例如,如果 $input 只有数字,那么我需要找到该变量只包含整数。假设它是否有浮点值,那么我需要检查它是否是浮点数
-
使用
ctype_函数。