PHP: Cast to Integer

Let’s try to convert each data type to integer-

Null to Integer

<?php

var_dump((int)null);
PHP

Output:

int(0)
Plaintext

Boolean to Integer

<?php

var_dump((int) true);

var_dump((int) false);
PHP

Output:

int(1)

int(0)
Plaintext

Float to Integer

<?php

var_dump((int) 123.45);     // Output: int(123)
var_dump((int) -123.99);    // Output: int(-123)
var_dump((int) 0.5);        // Output: int(0)
var_dump((int) -0.5);       // Output: int(0)
PHP

Output:

int(123)
int(-123)
int(0)
int(0)
Plaintext

String to Integer

<?php

var_dump((int) "123");
var_dump((int) "-123");
var_dump((int) "0123");
var_dump((int) "+123");
PHP

Output:

int(123)
int(-123)
int(123)
int(123)
Plaintext

If the string contains non-numeric characters, then conversion to integer follows these rules-

var_dump((int) "123abc");   // Output: (int)123
var_dump((int) "abc123");   // Output: (int)0
var_dump((int) "  123abc"); // Output: (int)123
var_dump((int) "  abc123"); // Output: (int)0
var_dump((int) "");         // Output: (int)0
PHP

Output:

int(123)
int(0)
int(123)
int(0)
int(0)
Plaintext

Hex and binary literals are not detected from a string, if converted to integer-

<?php

var_dump((int) "0x1A9");        // Output: int(0)
var_dump((int) "0b1010");       // Output: int(0)
var_dump((int) "0876");         // Output: int(876)
PHP

Output:

int(0)
int(0)
int(876)
Plaintext

Array to Integer

<?php

var_dump((int) []);             // Output: int(0)
var_dump((int) [1, 2, 3,]);     // Output: int(1)
PHP

Output:

int(0)
int(1)
Plaintext

Object to Integer

<?php

class BigBoxCode {
   
}

$obj = new BigBoxCode();
var_dump((int) $obj);
PHP

Output:

Warning: Object of class BigBoxCode could not be converted to int in data_type.php on line 8

int(1)
Plaintext
<?php

class BigBoxCode
{
    public function __toString()
    {
        return "999";
    }
}

$obj = new BigBoxCode();
var_dump((int) (string)$obj);
PHP

Output:

int(999)
Plaintext

Resource to Integer

<?php

$handle = fopen("sample.txt", "r");

var_dump((int) $handle);

fclose($handle);
PHP

Output:

int(5)
Plaintext

INF to Integer

<?php

var_dump(INF, (int) INF);  // Output: int(0)
var_dump(INF, (int) -INF); // Output: int(0)
PHP

Output:

float(INF)
int(0)


float(INF)
int(0)
Plaintext

NAN to Integer

<?php

var_dump(NAN, (int) NAN);  // Output: int(0)
PHP

Output:

float(NAN)
int(0)
Plaintext

JSON to Integer

<?php

$json = json_decode('999');
var_dump((int) $json);          // Output: int(999)

$json = json_decode('true');
var_dump((int) $json);          // Output: int(1)

$json = json_decode('null');
var_dump((int) $json);          // Output: int(0)

$json = json_decode('[1, 2, 3]');
var_dump((int) $json);          // Output: int(1)

$json = json_decode('[]]');
var_dump((int) $json);          // Output: int(0)
PHP

Output:

int(999)
int(1)
int(0)
int(1)
int(0)
Plaintext

Leave a Comment


The reCAPTCHA verification period has expired. Please reload the page.