测试php字符串是否为整数
测试php字符串是否为整数,php,Php,$post用于模拟$\u post,我发现$\u post['int']是一个字符串 如何判断$post['int']是否为整数 以下内容表明它不是整数 <?php $post=array('int'=>(string)123); var_dump($post); echo(is_int($post['int'])?'int':'not int'); ?> 编辑。根据文档(),是int-查找变量的类型是否为integer,因此显然它完全按照假设的那样执行。仍然
$post
用于模拟$\u post
,我发现$\u post['int']
是一个字符串
如何判断$post['int']
是否为整数
以下内容表明它不是整数
<?php
$post=array('int'=>(string)123);
var_dump($post);
echo(is_int($post['int'])?'int':'not int');
?>
编辑。根据文档(),
是int-查找变量的类型是否为integer,因此显然它完全按照假设的那样执行。仍然需要判断字符串是否为整数…您可以使用is numeric
函数如果var
是整数
或字符串整数
<?php
if(is_numeric($post)){
//Its a number
}
else{
//Not a number
}
?>
要检查变量是否为float
,可以使用is_float()代码>
您可以使用is\u numeric
函数,如果var
是整数
或字符串整数
<?php
if(is_numeric($post)){
//Its a number
}
else{
//Not a number
}
?>
要检查变量是否为float
,可以使用is_float()代码>
您必须使用is\u numeric()
从
注:
测试变量是数字还是数字字符串(例如
表单输入(始终为字符串),必须使用is\u numeric()
我从一段时间以来一直在使用:
function isInteger( $nbr ) {
if( preg_match( "/^[-]?[0-9]+$/", $nbr ) > 0 ) {
return true;
}
return false;
}
关于正则表达式的解释:
/ begin of the regex
^ the beginning of the string that you need to verify
[-]? an optionnal minus sign. No more that one sign.
[0-9]+ at least one digit
$ end of the string that you want to verify
/ end of the regex
您必须使用is\u numeric()
从
注:
测试变量是数字还是数字字符串(例如
表单输入(始终为字符串),必须使用is\u numeric()
我从一段时间以来一直在使用:
function isInteger( $nbr ) {
if( preg_match( "/^[-]?[0-9]+$/", $nbr ) > 0 ) {
return true;
}
return false;
}
关于正则表达式的解释:
/ begin of the regex
^ the beginning of the string that you need to verify
[-]? an optionnal minus sign. No more that one sign.
[0-9]+ at least one digit
$ end of the string that you want to verify
/ end of the regex
下面的代码片段对我很有用
if (is_numeric($_POST['in'])) {
echo "numeric!";
} else {
echo "not numeric";
}
下面的代码片段对我很有用
if (is_numeric($_POST['in'])) {
echo "numeric!";
} else {
echo "not numeric";
}
如果您确实想知道该值是否为整数,可以使用。重要提示:您不能使用假的$\u POST
var来测试这一点,您必须发布值或使用INPUT\u GET
进行测试,并将?int=344
附加到URL
// INPUT_POST => define that the input is the $_POST var
// 'int' => the index of $_POST you want to validate i.e. $_POST['int']
// FILTER_VALIDATE_INT => is it a valid integer
filter_input( INPUT_POST, 'int', FILTER_VALIDATE_INT );
工作示例:
<form action="" method="post">
<input type="text" name="int" />
<input type="submit" />
</form>
<?php
if( isset( $_POST["int"] ) ) {
echo( filter_input( INPUT_POST, 'int', FILTER_VALIDATE_INT ) ) ? 'int' : 'not int';
}
如果您确实想知道该值是否为整数,可以使用。重要提示:您不能使用假的$\u POST
var来测试这一点,您必须发布值或使用INPUT\u GET
进行测试,并将?int=344
附加到URL
// INPUT_POST => define that the input is the $_POST var
// 'int' => the index of $_POST you want to validate i.e. $_POST['int']
// FILTER_VALIDATE_INT => is it a valid integer
filter_input( INPUT_POST, 'int', FILTER_VALIDATE_INT );
工作示例:
<form action="" method="post">
<input type="text" name="int" />
<input type="submit" />
</form>
<?php
if( isset( $_POST["int"] ) ) {
echo( filter_input( INPUT_POST, 'int', FILTER_VALIDATE_INT ) ) ? 'int' : 'not int';
}
不要认为这是一个强有力的解决方案,但是
<?php
function is_string_an_int($v){
return is_numeric($v)&&(int)$v==$v;
}
echo is_string_an_int(5)?'y':'n';
echo is_string_an_int(5.5)?'y':'n';
echo is_string_an_int('5')?'y':'n';
echo is_string_an_int('5a')?'y':'n';
不要认为这是一个强有力的解决方案,但是
<?php
function is_string_an_int($v){
return is_numeric($v)&&(int)$v==$v;
}
echo is_string_an_int(5)?'y':'n';
echo is_string_an_int(5.5)?'y':'n';
echo is_string_an_int('5')?'y':'n';
echo is_string_an_int('5a')?'y':'n';
这会告诉你它是否是一个数字,但不一定是一个整数。不,一个数字可以是整数,也可以是字符串。我希望它们是整数或字符串。然后当你声明一个int时,不要把它放在引号里,那么如果你把它放在引号里,它就是一个整数,那么它将是一个字符串是数值的('1.5')
,而是数值的('1.0E+35')
也会产生true–不确定这是否是OP想要的。至于is_int
——通过GET/POST接收的值总是字符串。因此,请检查它是否是数字,然后键入cast作为int,然后比较两者?@cbroe我不确定这一点@user1032531这些比较的结果是相同的,只需使用是数值的
确定其是否为字符串编号
,然后如果要对其执行数学运算,则将其转换为INT
<代码>变量字符串=(int)编号代码>所以这会告诉你它是否是一个数字,但不一定是一个整数。不,一个数字可以是整数,也可以是字符串。我希望它们是整数或字符串。然后当你声明一个int时,不要把它放在引号里,那么如果你把它放在引号里,它就是一个整数,那么它将是一个字符串是数值的('1.5')
,而是数值的('1.0E+35')
也会产生true–不确定这是否是OP想要的。至于is_int
——通过GET/POST接收的值总是字符串。因此,请检查它是否是数字,然后键入cast作为int,然后比较两者?@cbroe我不确定这一点@user1032531这些比较的结果是相同的,只需使用是数值的
确定其是否为字符串编号
,然后如果要对其执行数学运算,则将其转换为INT
<代码>变量字符串=(int)编号代码>根据您编辑的解决方案。我真的需要在正则表达式方面做得更好。不确定它是否有效(但由于您已经使用了一段时间,所以预计它会有效),并将根据您编辑的解决方案进行测试。我真的需要在正则表达式方面做得更好。不确定它是否有效(但由于您已经使用它一段时间了,所以预期它会有效),并将进行测试。@swidmann谢谢。我本以为会有现成的解决方案。不客气,这里有这样一个函数:filter\u var()
将返回int(如果是int)或false(如果不是int)int@swidmann我喜欢你的解决方案,但不确定是否只需要在URL上进行测试,等等。刚刚读完你编辑的答案:)@swidmann谢谢。我本以为会有现成的解决方案。不客气,这里有这样一个函数:filter\u var()
将返回int(如果是int)或false(如果不是int)int@swidmann我喜欢你的解决方案,但不确定是否只需要在URL上进行测试,等等。刚刚读完你编辑的答案:)