ホームページ > バックエンド開発 > PHPチュートリアル > 文字列定数 文字列に対するインクリメント操作の PHP 分析

文字列定数 文字列に対するインクリメント操作の PHP 分析

WBOY
リリース: 2016-07-29 08:43:37
オリジナル
990 人が閲覧しました

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

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


for($i = 'A'; $i <= 'Z'; $i++) {
echo $i;
}


出力は次のとおりです:
ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADEAEAFAGAHAIAJAKALAMANAOAPAQARAS…
PHP マニュアルに手順が記載されています。多くの人が恐れているマニュアルを章ごとによく読んでください:
PHP は、C ではなく文字変数の算術演算を扱う場合、Perl の規則に従います。たとえば、Perl では 'Z'+1 は 'AA' になります。 '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 = "larence";

++$name //は "laruencf" になります


; そして、次のようになります。



コードをコピーします

コードは次のとおりです: $name = "laruence";

--$name //効果はありませんが、"laruence" のままです



したがって、この問題の原因は次のとおりです。 $i = Z の場合、++$i は AA になり、文字列を比較すると、
AA、BB、XX ~ YZ はすべて Z 以下になります。

上記では、文字列定数の内容も含めて、PHP の文字列に対するインクリメンタル操作における文字列定数の分析について紹介しました。PHP チュートリアルに興味のある友人の役に立てば幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート