PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php-读取用户输入并检查数据类型大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我有简单的PHP脚本:

<?PHP
$input = readline();

echo gettype($input);
?>

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

我需要这样的东西:

Input    Output
 5       Integer
2.5      float
true     Boolean

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

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

<?PHP
 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,效果很好:

<?PHP
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;
        }
      }
}

?>

解决方法:

对于简单类型,您需要采用以下一些策略.

>使用is_numeric()测试是否为数字.
>如果为数字,则将其添加为零,然后将gettype()添加
>如果不是数字,则比较“ true”和“ false”
>如果不是“ true”或“ false”,则为字符串

这是一个工作开始,展示了如何进行.

<?PHP
$input = readline();

if (is_numeric($input)){
    $sum =0;
    $sum += $input;
    echo gettype($sum);
}
else {
    if ($input== "true" or $input == "false"){
        echo "Boolean";
    }
    else {
        echo "String";
    }
}

?>

大佬总结

以上是大佬教程为你收集整理的php-读取用户输入并检查数据类型全部内容,希望文章能够帮你解决php-读取用户输入并检查数据类型所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: