PHPでの文字列のインクリメント

できるって知ってた?

$ php -v
PHP 8.2.12 (cli) (built: Nov  5 2023 21:48:15) (NTS)
  :
$ php -a
Interactive shell

php > $str='a';
php > echo ++$str;
b
php > echo ++$str;
c
php > echo --$str; //デクリメントはできない
c
php > echo --$str; //もう1回やってみる
c

php > // Zの次はAA
php > $str = 'W';
php > for ($n=0; $str != 'AC'; $n++) {
php {     echo ++$str. ' ';
php { }
X Y Z AA AB AC

知らんかった!!

プログラミングPHP 第4版に書いてた。たまにこういう本を通して読むのも悪くない。

今まではPhpSpreadsheetのstringFromColumnIndexで「数値→カラムラベル変換」してた。ちなみに逆はcolumnIndexFromString

これだと開発時にExcelをR1C1表記に変えたり、地味に面倒くさかったんで助かるー、と思ってたら公式マニュアルに警告がありました。

警告 この機能は、PHP 8.3.0 以降は soft-deprecated 扱い (E_DEPRECATED は発生しないものの、新しいコードではこの機能を使うべきではない) になっています。 str_increment() を代わりに使いましょう。 (https://www.php.net/manual/ja/language.operators.increment.php)

だそうです。