Reputation: 754
PHP Manual states:
PHP follows Perl's convention when dealing with arithmetic operations on character variables and not C's.
For example, in PHP and Perl $a = 'Z'; $a++;
turns $a into 'AA',
while in C a = 'Z'; a++;
turns a into '['
(ASCII value of 'Z' is 90, ASCII value of '[' is 91).
If PHP converts the characters to ascii values (assuming) when dealing with arithmetic operations on characters, should it not print '[' instead of AA? Why and how does PHP increment characters the way it does?
Upvotes: 3
Views: 319
Reputation: 798686
If PHP converts the characters to ascii values (assuming) when dealing with arithmetic operations on characters ...
Your assumption is false, since it treats "0"
and 0
as equal, instead of "0"
and 48
.
$ php
<?php
echo "0" == 0 ; echo "\n";
echo "0" == 48 ; echo "\n";
1
Upvotes: 2