学生が質問しました:
コードをコピーします コードは次のとおりです:
for ($i = 'A'; $i echo $i;
}
// 出力は何ですか? >出力は次のとおりです:
コードは次のとおりです: ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAFAGAHAIAJAKALAMANOAPAQARAS....
とは何ですか?
コードは次のとおりです。 PHP は、C の変数ではなく文字変数の算術演算を処理する場合、Perl の規則に従います。 、Perl では 'Z' 1 は 'AA' に変わりますが、C では 'Z' 1 は '[' ( ord('Z') == 90, ord('[') == 91 ) に変わります。変数はインクリメントできますが、デクリメントはできません。また、プレーン ASCII 文字 (a ~ z および A ~ Z) のみがサポートされます。
文字変数の算術演算を処理する場合、PHP は C の代わりに Perl の習慣に従います。たとえば、Perl では 'Z' 1 は 'AA' を取得しますが、C では 'Z' 1 は '[' (ord('Z') == 90, ord('[') == 91) を取得します。文字変数は増分のみ可能で減分はできず、純粋な文字 (a ~ z および A ~ Z) のみがサポートされることに注意してください。
つまり、次の場合:
コードは次のとおりです: $name = " laruence" ; $name; // "laruencf"
および:
コードは次のとおりです $name = "laruence"; --$name; // 効果はありませんが、"laruence" のままです
この問題は、$ When i = Z, $i が AA になり、文字列を比較するときに、
AA、BB、XX ~ YZ がすべて Z 以下である場合です。つまり、