Try var_dump( (int) “hello” );
You will receive 0
0 is also false where as “hello” would equate to true.
This is where you lose your original definition and could potentially break an algorithm.

A good example of this would be:

function getPercentage() {
$temp = func_get_args();
if( is_numeric( $temp[0] ) ) {
$myValue = (int) $temp[0];
}
if( is_string( $temp[0] ) && !is_numeric( $temp[0] ) ) {
$myValue = $temp[0];
}
if( is_int($myValue) ){
print ($myValue * 100) . "%";
//had we done (int) to the string we would have done 0 * 100
}else{
print $myValue;
//For some reason the percentage was already entered.
}
}

It’s also very handy for date functions.
Keeping track of numeric, string, and integer values would be also needed.
if today where Monday, date(“N”) would be “1” not 1.