PHPのインクリメント、デクリメント


「2.4.7インクリメント演算子とデクリメント演算子」からのメモ。


PHPでは++や--で演算子で文字列のインクリメント/デクリメントもできるようです。

<?php
$hoge = "a";
$hoge++;
echo "$hoge\n";
?>
b
<?php
$hoge = "z";
$hoge++;
echo "$hoge\n";
?>
aa

zをインクリメントすると繰り上がり、aaになります。これはあたかもa~zの26進数を使っているような感じですね。

<?php
$hoge = "spaz";
$hoge++;
echo "$hoge\n";
?>
spba
<?php
$hoge = "c9";
$hoge++;
echo "$hoge\n";
?>
d0

数字が入っている場合も計算できます。

<?php
$hoge = "42";
$hoge++;
echo "$hoge\n";
echo gettype($hoge)."\n";
?>
43
integer

一つ注意しなければならないのは、数字のみの文字列をインクリメントすると数値に変換されてしまうということです。
うーん、これは勝手に数値に変換されないほうがいい気がするけど、どうなんだろうか。まああまり使われない機能だからいいのかな。