jsはPHPで文字列の文字列インクリメントオペレーションコードをインターセプトします

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

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

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


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 = "larence";

++$name //は "laruencf" になります ; そして、次のようになります。

コードをコピーします

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


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

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

上記は、JS による文字列のインターセプトの内容を含め、PHP での js による文字列のインクリメンタル オペレーション コードを紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。



ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!