>백엔드 개발 >PHP 튜토리얼 >문자열에 대한 증분 연산의 문자열 상수 PHP 분석

문자열에 대한 증분 연산의 문자열 상수 PHP 분석

WBOY
WBOY원래의
2016-07-29 08:43:37995검색

한 학생이 질문했습니다.

코드 복사 코드는 다음과 같습니다.


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


결과는 무엇입니까? 출력은 다음과 같습니다.
ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARAS…
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"


그래서 이 문제의 원인은 다음과 같습니다. $i = Z 일 때 $i는 AA가 되고, 문자열을 비교하면
AA, BB, XX부터 YZ까지 모두 Z보다 작거나 같으니... 그래서..
위 내용은 문자열 상수의 내용을 포함하여 PHP의 문자열 증분 연산에서 문자열 상수 분석을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.