왜 1111111111 은 id로 쓸 수 없나요?

아무리 생각해봐도 모르겠습니다... id에 대한 조건을 만족시키는것 아닌가요?

#web
작성자 정보
답변 2
geeneoning
Dreamhack CTF S2 Ⅳ 참여

1111111111은 int로 바꿔도 1111111111 이니까요
그럼 당연히 id랑 비교하면 false 가 나오겠죠?

2024.02.16. 14:24
홍길동전
대표 업적 없음

전제 조건 : php 8 미만의 버전

문자열 형변환

$a = "v384920"; 
$b = "kw03mfdv";
$c = "a1293843298523";
print((int)$a); //출력결과 0
print((int)$b); //출력결과 0
print((int)$c); //출력결과 0
  • 문자열을 (int) 로 형변환할 때, 문자열의 맨 앞자리가 문자 형식이라면 출력 결과는 항상 0
$a = "5v384920"; 
$b = "54321kw03mfdv";
$c = "0101kw03mfdv";
print((int)$a); //출력결과 5
print((int)$b); //출력결과 54321
print((int)$c); //출력결과 101
  • 문자열을 (int) 로 형변환할 때, 문자열의 맨 앞자리가 숫자 형식이라면 숫자가 아닌 다른 형식이 오기 전까지의 숫자가 출력됨
$a = "5v384920"; 
$b = "54321kw03mfdv";
$c = "0101kw03mfdv";
if ($a == 5) //참
if ($b == 54321) //참
if ($c == 101) //참
  • int 타입과 문자열 비교 연산 시, 문자열을 (int) 로 강제 형변환할 때와 동일한 방식으로 자동 형변환 됨

해결되셨길 바랍니다.

2024.03.08. 08:37
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기