if((string)(int)$var == $var) {
echo 'var is an integer or a string representation of an integer';
}
Example results:
var_dump( test(1) ); // TRUE
var_dump( test('1') ); // TRUE
var_dump( test('1.0') ); // TRUE
var_dump( test('1.1') ); // false
var_dump( test('0xFF') ); // false
var_dump( test('0123') ); // TRUE
var_dump( test('01090') ); // TRUE
var_dump( test('-1000000') ); // TRUE
var_dump( test('+1000000') ); // TRUE
var_dump( test('2147483648') ); // false
var_dump( test('-2147483649') ); // false
See Gordon's answer below for how this would behave differently if ===
were used for comparison instead of ==
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…