Maison  >  Article  >  développement back-end  >  Explication détaillée de l'analyse des opérations d'incrémentation de PHP sur les chaînes

Explication détaillée de l'analyse des opérations d'incrémentation de PHP sur les chaînes

怪我咯
怪我咯original
2017-07-04 15:01:381400parcourir

Lorsqu'il s'agit d'opérations arithmétiques sur des variables de caractères , PHP suit les habitudes de Perl au lieu de C.

Un élève a posé une question :

Copiez le code Le code est le suivant :

<?php 
for($i = &#39;A&#39;; $i <= &#39;Z&#39;; $i++) { 
echo $i; 
}

Quel est le résultat ?

Le résultat est :

ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARAS…….

Pourquoi

C'est en fait très simple, et il y a des instructions dans le manuel PHP, mais je J'ai peur que beaucoup de gens ne connaissent pas un chapitre. Lisez attentivement le manuel section par section :

PHP suit la convention de Perl lorsqu'il s'agit d'opérations arithmétiques sur des variables de caractères et non sur des C. Par exemple, en Perl 'Z'. +1 se transforme en 'AA', tandis que en C 'Z'+1 se transforme en '[' ( ord('Z') == 90, ord('[') == 91 ). que les variables de caractères peuvent être incrémentées mais pas décrémentées et même ainsi, seuls les caractères ASCII simples (a-z et A-Z) sont pris en charge

Lorsqu'il s'agit d'opérations arithmétiques sur des variables de caractères, PHP suit les habitudes de Perl au lieu de celles de C. Par exemple, en Perl, 'Z'+1 obtiendra 'AA', tandis qu'en C, 'Z'+1 obtiendra '[' (ord('Z') == 90, ord('[') == 91 ). Notez que les variables de caractères ne peuvent être qu'incrémentées, pas décrémentées, et que seules les lettres pures (a-z et A-Z) sont prises en charge.

C'est-à-dire si :

le code est le suivant :

$name = "laruence"; 
++$name; //将会是"laruencf"

et :

le code est le suit :

$name = "laruence"; 
--$name; //没有影响, 还是"laruence"

Donc, la raison de ce problème est que lorsque $i = Z, ++$i devient AA, et pour la comparaison de chaînes,
AA, BB , XX sont toujours à YZ et sont tous inférieurs ou égaux à Z... donc..

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn