naoya_t@hatenablog

いわゆるチラシノウラであります

PHPのたしざん(shinhさんのにきより)

Bug #61095 PHP can't add hex numbers
via PHPのたしざん - はじめてのにき

$ php -r 'echo (0x00+2);echo "\n";'
4
$ php -r 'echo (0x00+ 2);echo "\n";'
2
$ php -r 'echo (0x00 + 2);echo "\n";'
2
$ php -r 'echo (0x00 +2);echo "\n";'
4

0x00 は0x0 でもよくて、+2 は +1でも+2でも+10でも…なぜか+ffffとかでもよくて、でも+の後はスペースあけちゃ駄目みたい。-2とか負の値でも行ける。行けるって何がだw

$ php -r 'echo 0x0 +2; echo "\n";'
4
$ php -r 'echo 0x0 +4; echo "\n";'
8
$ php -r 'echo 0x0 +6; echo "\n";'
12
$ php -r 'echo 0x0 +8; echo "\n";'
16
$ php -r 'echo 0x0 +10; echo "\n";'
26
$ php -r 'echo 0x0 +100; echo "\n";'
356

2倍になってるとかじゃなくて、10進で評価した値と16進で評価した値の和になってる感じですね…

うちのPHPのバージョンは

$ php -v
PHP 5.3.6 with Suhosin-Patch (cli) (built: Sep  8 2011 19:34:00) 
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies