일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- sql injection
- php 파일 업로드하기
- Server Side Request Forgery
- active reconnaissance
- access control
- Leviathan
- php login page
- active recon
- Reconnaissance
- OS Command Injection
- php To Do List
- Cookie
- php 로그인 페이지 만들기
- Recon
- War Game
- overthewire
- php
- FTZ
- BANDiT
- php file upload
- ssrf
- 파일 업로드 취약점
- over the wire
- file upload
- SQLi
- Authentication
- tryhackme
- Cryptography
- THM
- privilege escalation
- Today
- Total
R's Hacking Daily Log
php 연산자 다루기 (1) 본문
Step 1 :: 산술 연산자
산술 연산자는 수학에서의 사칙연산을 담당하는 연산자라 보면 된다.
더하기, 빼기, 곱하기, 나누기, 나머지, 제곱 연산까지 가능하다.
변수 a에 7, b에는 3을 할당한 다음 더하기, 빼기, 곱하기, 나누기, 나머지, 제곱 연산 순으로 결과를 출력해 봤다.
다른 연산보다 비교적 낯선 나머지 연산과 제곱 연산은 각각 %, ** 문자를 사용한다.
Step 2 :: 증감 연산자
증감 연산자는 변수의 값을 1 증가시키거나 감소시키는 연산으로 증가는 ++, 감소는 -- 기호를 사용한다.
증감 연산자를 변수 앞에 붙이느냐, 뒤에 붙이느냐에 따라 동작 방식이 달라진다.
먼저 증감 연산자를 변수 앞에 붙이는 경우를 보면 echo 함수의 결과가 모두 8인 걸 알 수 있다.
++$a 값을 참조해!라고 하면 ++ 기호가 먼저 동작하고 난 뒤에 $a값을 참조한다고 보면 된다.
$a에 7이 있는 상태에서 + 1이 된 후에 그 값(= 8)을 echo 문에 참조하는 것이다.
반대로 변수 뒤에 증감 연산자가 붙으면 어떻게 될까?
$a++값을 출력해!라는 건 현재 변수 a의 값을 참조한 후에 + 1을 실행하라는 의미이다.
따라서 현재 a의 값 7이 첫 번째 echo 함수에서 출력되고 나면 8로 값이 증가하게 된다.
그래서 두 번째 echo 함수의 결과는 8이 된다.
증감 연산자는 살펴본 바와 같이 변수의 값을 참조하기 전 OR 참조한 후에 값을 1 증감시키는 역할이다.
echo $a++;
1. echo $a;
2. $a = $a + 1;
echo ++$a;
1. $a = $a + 1;
2. echo $a;
echo $a--;
1. echo $a;
2. $a = $a - 1;
echo --$a;
1. $a = $a - 1;
2. echo $a;
증감 연산자로 인한 동작은 크게 2 단계로 이뤄진다고 이해하면 쉬울 것이다.
Step 3 :: 비교 연산자
비교 연산자는 말 그대로 두 변수의 값을 비교할 때 사용할 수 있는 연산자이다.
값을 비교하는 것이기 때문에 어느 쪽이 더 큰지, 작은지, 같은지, 다른지의 여부를 확인할 수 있다.
결과가 True인 경우에는 1을, False인 경우에는 "" 공백을 출력한다.
변수 a와 b에 각각 5, 2를 할당하고 비교 연산의 결과를 출력해 봤다.
첫 번째로 "a가 b보다 크다"라는 비교 연산은 True이기 때문에 1이 출력된 걸 볼 수 있다.
두 번째 "a가 b보다 작다"는 False라서 결과로 아무것도 출력되지 않았다.
그 밖에도 크거나 같다 or 작거나 같다는 각각 ">=" & "<="
두 값이 다르다는 "<>" or "!=" (두 연산자 모두 두 값이 다른지 확인할 때 사용할 수 있다.)
두 값이 같다는 "==" 기호를 사용하면 된다.
이때 " == "과 " === " 기호가 헷갈릴 수 있는 데
둘 다 피연산자의 값이 같은 지를 확인하는 연산자지만
"=="는 값만 비교하고 연산자이고 "==="는 두 변수 값의 데이터 타입까지도 일치하는 지를 확인한다.
비슷하게 두 값이 다른 지 확인하는 경우 "!="와 "!=="도
전자는 값이 일치하지 않는 지만 비교하고 후자는 값과 데이터 타입까지 비교하는 연산자이다.
Step 4 :: 대입 연산자
어떤 변수에 값을 할당하는 것을 "변수에 값을 대입한다"라고 표현할 수 있다.
코드 맨 위에서 볼 수 있는 " = " 기호를 사용한 변수 a, b의 값 할당이 대입 연산자를 사용한 예시인 셈이다.
대입 연산자는 산술 연산자와 같이 사용할 수 있는 데 이를 복합 대입 연산자라고 한다.
복합 대입 연산자의 동작을 이해하기 위해 예시를 하나 살펴보자.
<?php
$x = 7;
$y = 3;
$x += $y;
총 2개의 변수 x & y에 각각 7과 3이 대입되어 있다.
이때 " += " 연산자를 이용하면 결과는 어떻게 될까?
$x += $y;
$x = $x + $y;
첫 번째 줄이 의미하는 바는 풀어서 써보자면 두 번째 줄과 같다.
(1)왼쪽에 위치한 변숫값에 오른쪽 변숫값을 더하고 (2)그 값을 왼쪽 변수에 대입해라.
조금 헷갈릴 수 있지만 증감 연산자의 업그레이드 버전이라고 보면 된다.
증감 연산자는 값이 1씩만 바뀌기 때문에 1이 아닌 값을 더하거나 빼고 싶다! 할 때
사용할 수 있는 연산자이다.
총 6가지로 더하기, 빼기, 곱하기, 나누기, 나머지, 문자 연결 연산을 복합 대입 연산자로 해결할 수 있다.
#x에 (x-y) 값을 넣어라
1. $x -= $y;
$x = $x - $y;
#x에 (x*y) 값을 넣어라
2. $x *= $y;
$x = $x * $y;
#x에 (x/y) 값을 넣어라
3. $x /= $y;
$x = $x / $y;
#x에 (x%y) 값을 넣어라
4. $x %= $y;
$x = $x % $y;
#x에 (x.y) 값을 넣어라
5. $x .= $y;
$x = $x.$y;
'PHP' 카테고리의 다른 글
php 조건문 다루기 (0) | 2023.07.03 |
---|---|
php 연산자 다루기 (2) (0) | 2023.07.02 |
php 데이터 타입 (0) | 2023.06.30 |
php 상수 다루기 (0) | 2023.06.30 |
php 변수 다루기 (2) (0) | 2023.06.29 |