일일 정리

HTML/PHP 변수/데이터 타입, 연산자

mysecurity 2025. 1. 19. 15:37

목차

1. HTML/PHP 변수/데이터 타입

2. 연산자

 

HTML/PHP 변수/데이터 타입

 

● 변수

변수: 값을 저장하는 메모리 영역의 이름이다.

 

변수는 $ 기호로 시작한다.

변수 이름은 숫자가 먼저 올 수 없다.

변수 이름은 한글을 쓸 수는 있으나 쓰지 않는다.

변수 이름은 대소문자를 구분한다. 보통 소문자로 만든다.

$a = 1;

echo("\$a = $a");        // PHP에서 이스케이프 코드는 \ 이다.

위와 같이 작성한 경우 숫자 1이란 값을 a라는 이름의 메모리 영역에 저장한 것이다. echo를 이용해 출력할 수 있다. 

위와 같은 경우 가독성이 떨어질 수 있으므로 echo("\$a = {$a}")와 같이 변수 위치에 중괄호를 활용하는 것이 좋다.

 

$a = 1

출력한 값은 위와 같다.

 

데이터 타입

PHP는 다음과 같이 다양한 데이터 타입의 변수를 지원한다.

 

스칼라 타입

- 정수     : 123, -231, 0x123,

- 실수     : 1.23, 1.2E15

- 문자열 : "ABC", 'abc', '무궁화'

- 불린     : TRUE(1), FALSE(NULL,0)

 

다중 타입

- 배열     : 여러 개의 값을 하나의 변수에 저장한다. 변수가 많이 필요하면 사용한다.

- 객체     : 속성과 메소르도 구성되는 사용자 정의 데이터 타입

$a = 1;
$a = "AA";

위와 같이 작성하면 $a는 1이 저장되었을 때는 정수형 이지만 나중에 "AA"가 저장되면 문자열형으로 자동으로 형이 변환된다.

 

$bo = TRUE;
$int = (integer)$bo;
$str = (string)$bo;

필요하다면 위와 같이 형을 명시적으로 형 변환할 수 있다.

정수형: (integer)

문자열형: (string)

 

인용 부호와 문자열

$a = "AA";
$b = 'AA';

$a와 $b에 저장된 문자열에는 차이가 없다.

 

$a = "\t AA";
$b = '\t AA';

그러나 위와 같이 특수 문자가 포함되어 있을 때에는  $a와 $b에 저장된 문자열에는 차이가  발생한다. 이중 인용 부호를 사용하면 특수 문자가 발동되고, 단일 인용 부호를 사용하면 오로지 문자열로 인식한다. 

 

특수 문자는 개행이나 탭과 같이 화면을 제어하거나 특별한 기호를 표현하기 위해 사용되는 것으로 다음과 같다.

\n : 개행 문자(newline)    

\r  : 개행 문자(carriage) 

\t  : 탭 문자(horizontal tab)

\\  : \ 문자

\$ : $ 문자

\"  : " 문자

 

문자열을 작성할 경우는 반드시 인용 부호를 사용한다.

 

연산자

 

 산술 연산자

산술 연산자는 가징 기본적인 수학 연산자로 더하기, 나누기, 곱하기 등의 연산을 수행한다.

+   : 덧셈

-    : 뺄셈

*    : 곱셈

/    : 나눗셈

%  : 나머지

 

 대입 연산자

대입 연산자는 우변의 값을 좌변에 대입하는 연산자이다. PHP는 산술 연 산자를 이용한 더 다양한 대입 연산자를 제공한다.

 

=    : 우변의 값을 좌변에 대입한다.

+=  : 우, 좌변의 더한 값을 좌변에 대입한다.

-=   : 우변에서 좌변을 뺀 값을 좌변에 대입한다.

*=   : 우, 좌변의 곱한 값을 좌변에 대입한다.

/=   : 우변을 좌변으로 나눈 값을 좌변에 대입한다.

%= : 우변을 좌변으로 나누어 나머지 값을 좌변에 대입한다.

 

 증감 연산자

프로그램에서는 1증가하거나 1감소하는 순환문을 매우 많이 사용한다. 이런 특별한 연산을 위한 전용 연산자인 증감 연산자를 이용할 수도 있다.

 

$a++ : 변수를 사용하고 값을 1 증가시킨다.

++$a : 값을 1 증가 시킨 후 변수를 사용한다.

$a--   : 변수를 사용하고 값을 1 감소시킨다.

--$a   : 값을 1 감소 시킨 후 변수를 사용한다.

 

 관계 연산자

관계 연산자는 두 개의 값을 비교하는 연산자이다.

==   : 좌변과 우변의 값이 같으면 참이다.

=== : 좌변과 우변의 값과 데이터 타입이 모두 같으면 참이다. (쓰이지 않는다.)

!=    : 좌변와 우변의 값이 다르면 참이다.

!==  : 좌변와 우변의 값과 데이터 타입이 모두 다르면 참이다.

>     : 좌변의 값이 우변 값 보다 크면  참이다.

<     : 좌변의 값이 우변 값 보다 작으면  참이다.

>=   : 좌변의 값이 우변 값 보다 크거나 같으면  참이다.

<=   : 좌변의 값이 우변 값 보다 작거나 같으면 참이다.

 

 논리 연산자

논리 연산은 피 연산자의 논리적인 연산을 수행하는 것으로 보통 비교 연산자와 같이 쓰인다.

&&   : $a와 $b가 모두 참이면 참이다.

||      : $a와 $b중 하나이상이 참 이면 참이다.

xor   : $a,$b 논리 값이 서로 다르면 참이다.

!       : $a가 참이면 거짓, $a가 거짓이면 참이다.

and  : &&와 결과는 같으나 연산자 우선순위가 낮다.

or     : ||와 결과는 같으나 연산자 우선순위가 낮다.

 

 문자열 연산자

문자열 연산자는 문자열을 연결하거나 이미 문자열이 입력된 변수에 문자열을 추가할 수 있다.

.    : 두 개의 문자열을 연결한다.(연결 연산자)

.=  : 문자열을 추가한다.

 

숫자를 문자처럼 연결할 때 '.' 연산자가 소수점과 동일한 문자이므로 '1 . 2' 와 같이 연결할 숫자와 연산자를 한 칸씩 띄워 입력한다. 또한 aa 나 bb 와 같은 문자열을 입력할 때에는 반드시 이중 인용 부호를 씌운다.

 

연산자 우선순위

연산자를 두 개 이상 사용하는 경우 연산자 우선순위에 따라 연산 순서가 결정된다. 

1   : ++, --

2   : !

3   : *, /, %

4   : +, -, .

5   : <, <=, >, >=

6   : ==, ===, !=, !==

7   : &&

8   : ||

9   : =, +=, -=, *=, /=, %=, .=

10 : and

11 : xor

12 : or

 

실전에서는 애초에 우선순위를 따질 필요가 없도록 직관적으로 프로그래밍하는 것이 옳다.