当输入数字时,则将其读为数字

时间:2014-02-16 02:30:21

标签: php

这是简单的代码

$value=($_POST['value']>0)?"number":"string";
echo $value;

当我插入一些东西,如123abc这个代码打印数字,但如果我插入像abc123这样的代码打印字符串
现在我使用了很多if语法,每次插入123abc时总是打印数字 如果我像这样使用它

$value=$_POST['value']*1;
echo $value;

当我插入一些东西像123abc这个代码打印123但如果我插入像abc123这样的代码打印0

现在主要问题是为什么代码工作会发生这种情况
在我将其插入数据库或其他任何

之前,是否有简单的方法来处理它并确定它的编号

1 个答案:

答案 0 :(得分:2)

执行此操作以检查$_POST['value']是否为字符串或数字,以及是否大于0。

$value=is_numeric($_POST['value']) && ($_POST['value']>0) ? "number":"string";

如果$_POST['value']abc123123abc,则会打印“字符串”,如果只是123,则会打印“数字”。

Demo

their documentation上的PHP声明:

  

该值由字符串的初始部分给出。如果是字符串   从有效的数字数据开始,这将是使用的值。   否则,该值将为0(零)。有效的数字数据是   可选符号,后跟一个或多个数字(可选地包含一个   小数点),后跟可选的指数。指数是一个   'e'或'E'后跟一个或多个数字。