> 백엔드 개발 > PHP 튜토리얼 > js는 PHP에서 문자열에 대한 문자열 증가 연산 코드를 가로챕니다.

js는 PHP에서 문자열에 대한 문자열 증가 연산 코드를 가로챕니다.

WBOY
풀어 주다: 2016-07-29 08:43:40
원래의
943명이 탐색했습니다.

한 학생이 질문했습니다.

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


for ($i = 'A'; $i <= 'Z'; $i ) {
echo $i;
}
//출력은 무엇입니까?


출력은 다음과 같습니다.

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


ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARAS…
왜요?

사실 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"


그래서 이 문제의 원인은 다음과 같습니다. $i = Z 일 때 $i는 AA가 되고, 문자열을 비교하면

AA, BB, XX부터 YZ까지 모두 Z보다 작거나 같습니다... 그래서..
저자: laruence
위 내용은 js로 문자열을 가로채는 내용을 포함하여 PHP에서 js로 가로채는 문자열에 대한 증분 연산 코드를 소개하고 있으니 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿