Strings Are Bigger Than Integers

When comparings strings and integers with inequalities (<, =<, >, >=), strings used to be smaller than numbers and they are bigger than numbers in PHP 8.0. Unless, they can be converted to integer safely.

PHP code

<?php

var_dump('a' > -1);
var_dump('a' > 0);
var_dump('a' > 1);

var_dump('a' < -1);
var_dump('a' < 0);
var_dump('a' < 1);

?>

Before

bool(true)
bool(false)
bool(false)

bool(false)
bool(false)
bool(true)

After

bool(true)
bool(true)
bool(true)

bool(false)
bool(false)
bool(false)

PHP version change

This behavior changed in 8.0

See Also