Php检查变量是数字还是数字字符串

时间:2017-03-10 21:55:12

标签: php

我有两个POST变量,可以是mere Stringnumerical string,在我的程序执行不同任务的任何条件下,但最大的问题是php似乎无法给我正确的结果,至少这是我的想法,我有4个条件和两个变量; $_POST['category']$_POST['location'],其中两个都是数字字符串,两个是其中一个而另一个不是,最后当两者都只是字符串时,下面是我的代码:

$_POST['category'] = '231';
$_POST['location'] = 'test query';

 if(isset($_POST['location']) && isset($_POST['category'])){


  $categoryQuery = "%{$_POST['category']}%"; 
  $locationQuery = "%{$_POST['location']}%"; 


//case 1
if(is_numeric($categoryQuery) == FALSE && is_numeric($locationQuery) == FALSE){

echo '1-';
}

//case 2
if(is_numeric($categoryQuery) == TRUE && is_numeric($locationQuery) == FALSE){
   echo '2-';
  }

//case 3
 if(is_numeric($categoryQuery) == FALSE && is_numeric($locationQuery) == TRUE){
   echo '3-';
}

//case 4
if(is_numeric($categoryQuery) == TRUE && is_numeric($locationQuery) == TRUE){
 }

 }

但无论每次执行案例1时两个变量的价值如何,任何人都知道如何通过这个问题?

我是一名全职的java / Android开发人员,所以我的逻辑可能会关闭

2 个答案:

答案 0 :(得分:0)

这是什么?

$categoryQuery = "%{$_POST['category']}%";
$locationQuery = "%{$_POST['location']}%"; 

试试这个

$categoryQuery = $_POST['category'];
$locationQuery = $_POST['location']; 

你检查它是否是一个数字但是你的第一个版本它永远不会是一个数字

答案 1 :(得分:0)

您的代码在这里:

$categoryQuery = "%{$_POST['category']}%"; 
$locationQuery = "%{$_POST['location']}%"; 

导致测试失败。在测试它们是否为数字之前,您使用%标记(表面上是SQL查询)包装变量。用这些标记包裹,您的变量将始终被评估为字符串。