クラスメートが質問をしました:
コードをコピーします コードは次のとおりです:
for($i = 'A'; $i <= 'Z'; $i++) {
echo $i;
}
//出力は何ですか?
コードは次のとおりです:ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAFAGAHAIAJAKALAマナオパカラス……
なぜ?実際は非常に簡単です。PHP マニュアルには説明が記載されていますが、多くの人はマニュアルを章ごとに注意深く読まないと思います:
PHP は、C ではなく文字変数の算術演算を処理する場合、Perl の規則に従います。たとえば、Perl では 'Z'+1 は 'AA' になりますが、C では 'Z'+1 は '[' ( ord('Z) になります。 ') == 90、ord('[') == 91 )。算術演算を扱う場合は、文字変数は増分できますが、減分はできないことに注意してください。文字変数に関して、PHP は C ではなく Perl の習慣に従います。たとえば、Perl では 'Z'+1 は 'AA' を取得しますが、C では 'Z'+1 は '[' を取得します (ord('Z') == 90, ord('[') == 91 )。文字変数は増分のみ可能で減分はできず、純粋な文字 (a ~ z および A ~ Z) のみがサポートされることに注意してください。 つまり、次の場合:
コードをコピーします
++$name //は "laruencf" になります ; そして、次のようになります。
コードをコピーします
コードは次のとおりです:
したがって、この問題の原因は次のとおりです。 $i = Z の場合、++$i は AA になり、文字列を比較すると、AA、BB、XX ~ YZ はすべて Z 以下になります。つまり、.. Author: laruence
上記は、JS による文字列のインターセプトの内容を含め、PHP での js による文字列のインクリメンタル オペレーション コードを紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。