Php 如何仅检查数字(包括负数)?
如何检查从-10负到+10正的数字 这就是我所拥有的,但我认为这不安全:Php 如何仅检查数字(包括负数)?,php,numbers,negative-number,Php,Numbers,Negative Number,如何检查从-10负到+10正的数字 这就是我所拥有的,但我认为这不安全: if(isset($_POST['number']) && ctype_digit($_POST['number']) && $_POST['number']>=-10 && $_POST['number']<=10){ //do something } if(设置($\u POST['number'])和&ctype_digit($\u POST['n
if(isset($_POST['number']) && ctype_digit($_POST['number']) && $_POST['number']>=-10 && $_POST['number']<=10){
//do something
}
if(设置($\u POST['number'])和&ctype_digit($\u POST['number'])和&$\u POST['number']>=-10&&&$\u POST['number']
到该内部IF语句,以确保没有从输入中删除任何非数字字符
到该内部IF语句,以确保没有从输入中删除非数字字符。检查变量是否为包含零值和负值的数字
$x = '-22';
if (isNumber($x, ['zero','negative']))
echo 'Yes';
else
echo 'No';
isNumber($x, $includes=[])
{
if (is_int($x)) {
if ($x === 0) {
if (in_array('zero', $includes))
return true;
} elseif ($x < 0) {
if (in_array('negative', $includes))
return true;
} else
return true;
} elseif (is_string($x)) {
if ($x == '0') {
if (in_array('zero', $includes))
return true;
} elseif ($x[0] == '-') {
if (in_array('negative', $includes))
return ctype_digit(substr($x, 1));
} else
return ctype_digit($x);
}
}
$x='-22';
如果(isNumber($x,['zero','negative']))
回应“是”;
其他的
回应‘否’;
isNumber($x,$includes=[]))
{
如果(是整($x)){
如果($x==0){
if(在数组中('zero',$includes))
返回true;
}elseif($x<0){
if(在数组中('负',包括$)
返回true;
}否则
返回true;
}elseif(是字符串($x)){
如果($x='0'){
if(在数组中('zero',$includes))
返回true;
}elseif($x[0]='-'){
if(在数组中('负',包括$)
返回ctype_数字(substr($x,1));
}否则
返回ctype_位($x);
}
}
检查变量是否为包含零值和负值的数字
$x = '-22';
if (isNumber($x, ['zero','negative']))
echo 'Yes';
else
echo 'No';
isNumber($x, $includes=[])
{
if (is_int($x)) {
if ($x === 0) {
if (in_array('zero', $includes))
return true;
} elseif ($x < 0) {
if (in_array('negative', $includes))
return true;
} else
return true;
} elseif (is_string($x)) {
if ($x == '0') {
if (in_array('zero', $includes))
return true;
} elseif ($x[0] == '-') {
if (in_array('negative', $includes))
return ctype_digit(substr($x, 1));
} else
return ctype_digit($x);
}
}
$x='-22';
如果(isNumber($x,['zero','negative']))
回应“是”;
其他的
回应‘否’;
isNumber($x,$includes=[]))
{
如果(是整($x)){
如果($x==0){
if(在数组中('zero',$includes))
返回true;
}elseif($x<0){
if(在数组中('负',包括$)
返回true;
}否则
返回true;
}elseif(是字符串($x)){
如果($x='0'){
if(在数组中('zero',$includes))
返回true;
}elseif($x[0]='-'){
if(在数组中('负',包括$)
返回ctype_数字(substr($x,1));
}否则
返回ctype_位($x);
}
}
我添加了php标记,以便php社区可以看到您的问题。为什么您希望人们在这么有限的数字时键入它?为什么不添加选择框?我添加了php标记,以便php社区可以看到您的问题。为什么您希望人们在这么有限的数字时键入它?为什么不添加选择框?
&& "".$num == $_POST['number']
$x = '-22';
if (isNumber($x, ['zero','negative']))
echo 'Yes';
else
echo 'No';
isNumber($x, $includes=[])
{
if (is_int($x)) {
if ($x === 0) {
if (in_array('zero', $includes))
return true;
} elseif ($x < 0) {
if (in_array('negative', $includes))
return true;
} else
return true;
} elseif (is_string($x)) {
if ($x == '0') {
if (in_array('zero', $includes))
return true;
} elseif ($x[0] == '-') {
if (in_array('negative', $includes))
return ctype_digit(substr($x, 1));
} else
return ctype_digit($x);
}
}