ホームページ >php教程 >php手册 >PHPでの文字列のインクリメント・オペレーション・コード

PHPでの文字列のインクリメント・オペレーション・コード

WBOY
WBOYオリジナル
2016-06-13 12:13:311325ブラウズ

学生が質問しました:

コードをコピーします コードは次のとおりです:


for ($i = 'A'; $i echo $i;
}
// 出力は何ですか? >出力は次のとおりです:



コードをコピー

コードは次のとおりです: ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAFAGAHAIAJAKALAMANOAPAQARAS....



とは何ですか?


実際には、PHP マニュアルに手順が記載されていますが、多くの人はマニュアルを章ごとに注意深く読まないと思います。


コードをコピー

コードは次のとおりです。 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 以下である場合です。つまり、

著者: ラルエンス
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。