ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルでの文字列のインクリメント操作コード

PHP_PHP チュートリアルでの文字列のインクリメント操作コード

WBOY
WBOYオリジナル
2016-07-21 15:34:07998ブラウズ

クラスメートが質問をしました:

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

for($i = 'A'; $i <= 'Z'; $i++) {
echo $i;
}
//出力は何ですか?

出力は次のとおりです:
コードは次のとおりです:
ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAFAGAHAイアジャカラマナオパカラス……


なぜ?

実際は非常に簡単です、PHP マニュアルにも説明がありますが、多くの人はマニュアルを章ごとに注意深く読まないのではないかと思います:


コードをコピーします コードは次のとおりです:
PHP は、C ではなく文字変数の算術演算を処理する場合、Perl の規則に従います。たとえば、Perl では 'Z'+1 は 'AA' に変わりますが、C では 'Z'+1 は '[' ( ord(' Z') == 90、ord('[') == 91 )。文字変数は増分できますが、減分はできません。また、算術演算を扱う場合は、プレーン ASCII 文字 (a ~ z および A ~ Z) のみがサポートされることに注意してください。文字変数の操作、PHP は Perl の習慣に従い、C ではありません。たとえば、Perl では 'Z'+1 は 'AA' を取得しますが、C では 'Z'+1 は '[' を取得します (ord('Z') == 90, ord('[') == 91 )。文字変数は増加のみ可能で減少はできず、純粋な文字 (a ~ z および A ~ Z) のみがサポートされることに注意してください。

つまり、次の場合です:


コードをコピーします

コードは次のとおりです:
$name = "larence" ++$name; // "laruencf" になります
そして:


コードをコピーします

コードは次のとおりです:
$name = "laruence"; --$name // 効果はありません、"laruence" のままです
それでは、この問題の理由は次のとおりです。は $i = Z のときです このとき、++$i は AA となり、文字列比較では
AA、BB、XX から YZ までがすべて Z 以下になる…ということです。

Author: laruence



http://www.bkjia.com/PHPjc/322462.html
www.bkjia.com

tru​​ehttp://www.bkjia.com/PHPjc/322462.html技術記事クラスメートが質問しました。 コードをコピーします。 コードは次のとおりです。 ?php for($i = 'A'; $i = 'Z'; $i++) { echo $i; } // 出力は何ですか?出力は次のとおりです。 コードをコピーします。 コードは次のとおりです。 ABCDEFGHIJKLMNOPQRSTUVW...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。