获得
这是我的代码。
$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-Zs]^[0-9]/', $input)) {
echo "string.";
}
我将从命令行中获取$input
变量。我需要找到变量的数据类型是int,float,string。
尝试过getType((方法,但始终是字符串。因此仅尝试使用preg_match
。
尽管在这也没有得到正确的输出。
ex:1.2e3我以字符串
从命令行(或任何 pipe (的所有输入将始终是字符串,因为不支持其他类型。您要找出的是字符串是否为数字,然后将其转换为一个数字:
if (is_numeric($input)) {
$input = +$input;
}
一元+
操作员将使字符串解释为数字,并在int
或float
中产生。