1… 1이 10.1로 평가되는 이유는 무엇입니까? [복제]
이 질문에는 이미 답변이 있습니다.
- 왜 '…'이 내 코드에서 두 숫자를 연결합니까? 답변 1 개
방금 3v4l에서 약간의 PHP 스 니펫에 직면했습니다 : https://3v4l.org/jmrZB
echo 1...1; //10.1
결과를 어떻게 설명해야할지 모르겠습니다. 이것이 왜 유효한 것으로 간주됩니까?
점 ( .
)은 PHP에서 두 가지 역할을합니다.
- 실수의 일부인 경우 10 진수로 표시됩니다 (예 :)
1.1
. 정수 부분과 소수 부분은 실수로 선택 사항 이지만 동시에는 아닙니다 . 이것은 PHP에서 유효한 실수1.
이고 둘 다를 의미.1
하지는.
않습니다. - 현상태대로 문자열 연결 연산자 . 이 연산자는 두 개의 문자열 하위 표현식을 더 큰 표현식으로 연결합니다. 더 큰 표현식의 값은 하위 표현식의 문자열 값을 연결 한 것입니다. 문자열이 아닌 하위 표현식은 연결 전에 문자열로 변환됩니다.
예1 . 1
를 들어 동일'1' . '1'
하고 값은 문자열'11'
입니다.
식은 1...1
로 구문 분석됩니다 1. . .1
. 이들에 따르면, 상술 한 특징, 1.
및 .1
실수 (아르 1.0
와 0.1
)과 중간 점 ( .
) 문자열 연결 연산자이다.
숫자를 문자열로 변환 할 때 PHP는이 작업에 필요한 최소 문자 수를 사용합니다. 실수에 정수 부분 만있는 경우 소수점과 소수점없이 정수로 숫자를 나타냅니다.
그렇기 때문에 식의 최종 값이와 1. . .1
같습니다 .'1' . '0.1'
10.1
왜 1...1
이런 식으로 구문 분석됩니까?
파서는 식을 왼쪽에서 오른쪽으로 읽습니다. 1
숫자가 거기에서 시작한다고 알려줍니다. 1.
유효한 실수이지만 1..
그렇지 않습니다. 1.
숫자로 유지 하고 다음 점은 연결 연산자입니다. 다음 .
에 숫자가 오는 것은 다른 실수의 시작입니다 ( .1
).
대체로 1...1
와 동일합니다 1. . .1
.
1.
.
.1
( 1
및 0.1
) 로 해석 되므로10.1
중괄호를 적용하면 다음과 같이 명확 해집니다.
(1.) . (.1)
1.
로 해석된다1
.
문자열 연결입니다.1
로 해석된다0.1
문자열로이 모든 풋은 10.1
문자열로 .
var_dump(1...1)
수확량string(4) "10.1"
다른 작업.
1. <?php echo 1.1; ?> // gives simple 1.1
2. <?php echo 1...1; ?> // gives 10.1
3. <?php echo 1..'1'; ?> // gives 11
4. <?php var_dump(1.); ?> // gives 1
5. <?php var_dump(.1); ?> // gives 0.1
이제 우리의 이상한 조작
echo 1...1
No 4와 No 5의 연결로 취급되어 10.1
참고 URL : https://stackoverflow.com/questions/45139805/why-does-1-1-evaluate-to-10-1
'IT story' 카테고리의 다른 글
MySQL LEFT JOIN으로 행 삭제 (0) | 2020.05.26 |
---|---|
JavaScript에서 현재 실행중인 함수의 이름을 얻을 수 있습니까? (0) | 2020.05.26 |
배열이 비어 있지 않은지 확인하십시오. (0) | 2020.05.26 |
git-upload-pack : 원격 Git 저장소를 복제 할 때 명령을 찾을 수 없습니다 (0) | 2020.05.26 |
PowerShell에서 로컬 호스트 이름을 얻으려면 어떻게합니까? (0) | 2020.05.26 |