这是简单的代码
$value=($_POST['value']>0)?"number":"string";
echo $value;
当我插入一些东西,如123abc这个代码打印数字,但如果我插入像abc123这样的代码打印字符串
现在我使用了很多if语法,每次插入123abc时总是打印数字
如果我像这样使用它
$value=$_POST['value']*1;
echo $value;
当我插入一些东西像123abc这个代码打印123但如果我插入像abc123这样的代码打印0
现在主要问题是为什么代码工作会发生这种情况
在我将其插入数据库或其他任何
答案 0 :(得分:2)
执行此操作以检查$_POST['value']
是否为字符串或数字,以及是否大于0。
$value=is_numeric($_POST['value']) && ($_POST['value']>0) ? "number":"string";
如果$_POST['value']
为abc123
或123abc
,则会打印“字符串”,如果只是123
,则会打印“数字”。
their documentation上的PHP声明:
该值由字符串的初始部分给出。如果是字符串 从有效的数字数据开始,这将是使用的值。 否则,该值将为0(零)。有效的数字数据是 可选符号,后跟一个或多个数字(可选地包含一个 小数点),后跟可选的指数。指数是一个 'e'或'E'后跟一个或多个数字。