获取命令行PHP中输入变量的数据类型



这是我的代码。

$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;
}

一元+操作员将使字符串解释为数字,并在intfloat中产生。

最新更新