<?php
for ($i = 'A'; $i <= 'Z'; $i++) {
echo $i . ' ';
}
// 輸出: A B C ... Z AA AB AC ... YZ
// 死循環!因為 'AA' <= 'Z' 為 true(字符串比較)
PHP 沿襲 Perl 風格:字符變量遞增按字母表進位。
'Z' + 1 → 'AA','z' + 1 → 'aa','9' + 1 → '10'(數字按數值進位)。
只能遞增,不能遞減;僅支持純 ASCII 字母(a-z, A-Z)和數字(0-9)。
++$str 會從右向左處理字符:a..y → 後一字母,z → a 並向左進位。0..8 → 後一數字,9 → 0 並向左進位。'A9' → 'B0','Z9' → 'AA0'。$i <= 'Z' 在 'AA' 時仍為 true。for ($i = 'A'; $i !== 'AA'; $i++) 或 foreach (range('A', 'Z') as $i)。++$str 無效果(如含 -、_、中文)。--$str 不報錯但不變化。A, B, ... Z, AA, AB ... → function colName($n) { for($c='A'; $n--; $c++); return $c; }base36 變體。user_001, user_002 ...。// 安全生成 Excel 列名
function excel_col(int $index): string { // 1-based
$col = '';
while ($index > 0) {
$index--;
$col = chr(65 + ($index % 26)) . $col;
$index = intdiv($index, 26);
}
return $col;
}
// 測試
for ($i = 1; $i <= 702; $i++) { // A..ZZ
echo excel_col($i) . ' ';
}