PHPアルファベット増分

4268 ワード

転載は出典を明記してください.文章が役に立つと思ったら、鶏の足をください.
本文
私たちはよくコードの中でアルファベットの増加の問題を使って、大多数の情況はすべて手動で書くので、例えば[‘A’,‘B’,‘C’,...,‘AA’,‘AB’]phpxlsでドキュメントを生成する時、比較的に面倒で、列の変動もアルファベットの列を修正することに従います
次はコードでこの機能を実現し、後でアルファベット列を変更する必要はなく、タイトル列に注目するだけです.
$letter = [];
$firstLetter = 'A';

$tableHeader = ['foo','bar','',''];
$tableLen = count($tableHeader);
for ($x = 0; $x < $tableLen; $x++) {
    array_push($letter, $firstLetter++);
}
print_r($letter);
//    :
// ['A', 'B', 'C', 'D']
$foo = 'Z';
echo $foo++; // AA
echo $foo++; // AB

知識の拡張
PHPマニュアル-来源演算子-来源増加/減少演算子には、次のようなテキストがあります.
PHP follows Perl’s convention when dealing with arithmetic operationson 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).Note that character variables can be incremented but not decremented andeven so only plain ASCII alphabets and digits (a-z, A-Z and 0-9) are supported.Incrementing/decrementing other character variables has no effect, theoriginal string is unchanged.
文字変数の演算を扱う場合、PHPはCではなくPerlの習慣を踏襲する.例えば、Perlでは$a=‘Z’;$a++;では$aを‘AA’に、Cではa=‘Z’;a++;ではaを‘(‘Z’のASCII値は90,’[’のASCII値は91)を選択します.文字変数は増加、減少のみ可能で、アルファベット(a-zおよびA-Z)のみがサポートされています.他の文字変数の増加/減少は無効で、元の文字列は変更されません.
だからこの特性を利用して、例えばphpexcelというpluginでデータをエクスポートする時、多くのことを節約することができます