PHP variables can hold any type of value. When you perform an auto-decrement operation on a variable, its values are of a wide range, not limited to numeric types. This feature is found in languages such as Perl, which are weakly typed. While the values of Java variables are strictly distinguished by the type of language, such operations are limited to numeric type values.
When a string has a value in each of the binary identifiers (0x, 0b, etc.), scientific notation (E), there will be exceptions, need to be noted.
The increment/decrement operator does not affect the Boolean value. Decreasing the null value also has no effect, but the result of incrementing null is 1.
When dealing with arithmetic operations of character variables, PHP inherits the Perl habit, not the C.
$a = TRUE;
Var_dump (+ + $a); BOOL (TRUE)
$a = TRUE;
Var_dump (-$a); BOOL (TRUE)
$b = FALSE;
Var_dump (+ + $b); BOOL (FALSE)
$b = FALSE;
Var_dump (-$b); BOOL (FALSE)
See: http://www.phpxs.com/post/4226
PHP self-increment and decrement operation