Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
测试php字符串是否为整数_Php - Fatal编程技术网

测试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上进行测试,等等。刚刚读完你编辑的答案:)