PHP の文字列に対する増分操作の詳細な分析
Jul 04, 2017 pm 03:01 PM文字変数の算術演算を扱うとき、PHPはCの代わりにPerlの習慣に従います。
学生が質問しました:
コードをコピーします コードは次のとおりです:
<?php for($i = 'A'; $i <= 'Z'; $i++) { echo $i; }
出力は何ですか?
出力は次のとおりです:
ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAFAGAHAIAJAKALAMANOOAPAQARAS……。
なぜですか?
それは実際には?非常に単純な 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"
文字列比較、AA、BB、XX から YZ まではすべて Z 以下です...つまり..
以上がPHP の文字列に対する増分操作の詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法
