Search code examples
phpxamppfilter-var

FILTER_VALIDATE_INT return false always


I am trying to validate integer by using FILTER_VALIDATE_INT. it is working fine on ubuntu server but return false on my local win 10 xampp system.

here is the code

case 1:

$d = "sdaf";
var_dump(filter_var($d, FILTER_VALIDATE_INT));

OP : bool(false)

case 2 :

$d = "9876543210";
var_dump(filter_var($d, FILTER_VALIDATE_INT));

OP : bool(false)

case 3 :

var_dump(filter_var(9876543210, FILTER_VALIDATE_INT));

OP : bool(false)

On server:

var_dump(filter_var(9876543210, FILTER_VALIDATE_INT));

OP : int(9876543210)


Solution

  • Are you running a 32 bit Windows, or a 32bit PHP on a 64bit windows, and a 64bit Server?

    I think you probably are. If you run this you will get the correct results. Your numbers were greater than the PHP_INT_MAX for a 32bit system

    echo PHP_INT_MAX;
    
    $d = "sdaf";
    var_dump(filter_var($d, FILTER_VALIDATE_INT));  
    
    $d = PHP_INT_MAX;
    var_dump(filter_var($d, FILTER_VALIDATE_INT));
    
    var_dump(filter_var(PHP_INT_MAX, FILTER_VALIDATE_INT));
    

    RESULTS:

    2147483647
    
    bool(false)
    
    int(2147483647)
    
    int(2147483647)