R's Hacking Daily Log

php 데이터 타입 본문

PHP

php 데이터 타입

hanhxx 2023. 6. 30. 15:42

Step 1 :: 정수형 [ Integer ] 

제일 먼저 살펴볼 데이터 타입은 정수형이다. 

말 그대로 수학적인 의미에서의 "정수"를 저장하는 데이터 타입을 얘기한다. 

 

운영체제가 몇 bit인지에 따라 저장할 수 있는 정수의 크기가 달라질 수 있다.

<?php
echo PHP_INT_MAX;

자신의 운영체제에서 정수의 최대 크기를 확인해보고 싶다면 PHP_INT_MAX 값을 출력해 보면 된다.

 

 

 

보통 정수형 데이터라고 하면 10진법 정수를 생각하지만 정수형 데이터 타입으로는 

echo -123;
echo 0377;
echo 0xFF;
echo 0b11111111;

양수, 음수에 더불어 2진수, 8진수, 16진수 형태의 정수도 나타낼 수 있다.

 

 


Step 2 :: 실수형 [ Float ]

실수를 저장하는 데이터 타입을 실수형이라고 한다. 

실수형도 정수형과 비슷하게 운영체제에 따라 최대 범위가 달라진다. 

 

다만 1/3처럼 0.3333333.. 끝없이 나눠지는 수 같은 경우에는 중간에서 값을 끊을 수 밖에 없기 때문에

오차 범위를 고려해줘야한다. 

 

<?php
echo 1.234;
echo 1.2e3;
echo 7E-10;

 

 


Step 3 :: 논리형 [ Boolean ]

논리형은 참 True & 거짓 False 값만 가지는 데이터 타입이다. 

보통 참은 정수 1로, 거짓은 0으로 표현된다. 

 

논리형은 데이터 타입에 따라서 자동으로 변환이 가능한데

정수 0, 실수 0.0, 문자열 "" or "0", 빈 배열, NULL은 false가 되고 나머지 경우는 모두 true로 취급한다. 

 

 

 


Step 4 :: 문자열 [ String ]

문자열 타입은 문자들의 나로 글자 하나하나가 연결된 문자들을 나타낸다. 

PHP에서는 문자열을 바이트로 처리하기 때문에 문자열을 지정하는 범위의 제한이 없다.

(32bit 운영 체제에서는 존재함)

 

문자열을 만들기 위해서는 작은따옴표 or 큰 따옴표로 감싸주면 된다.

만약 문자열 안에서 따옴표를 사용하고 싶다escape sequence(이스케이프 문자)를 붙여주면 된다.

<?php
echo '작은 따옴표<br/>';
echo "큰 따옴표<br/>";
echo '작은 따옴표 안에 \' 작은 따옴표<br/>';
echo "큰 따옴표 안에 \" 큰 따옴표<br/>";

 

 

문자열 안에서 특별한 기능을 수행하기 위해서 사용하는 이스케이프 문자는 역 슬래쉬 " \ "

대표적인 예시는 줄바꿈을 위한 " \n "이 있다.

 

 


Step 5 :: 배열 [ Array ]

배열은 여러 요소들을 묶어서 하나의 자료형에 넣어둔 형태로 

요소를 추가, 삭제, 수정하는 것이 가능한 가변형 객체 데이터 타입이다. 

 

배열 안에는 서로 다른 타입의 값들을 넣을 수 있고, 배열 안에 배열을 넣는 2차원 배열도 가능하다. 

배열을 만들기 위해서는 기본적인 방법 & 축약형이 존재한다.

 

<?php
$a = array("apple", 5, "banana", 1.234);

$b = ["apple", 5, "banana", 1.234];

변수 a에 배열을 할당하기 위해 array()를 이용하여 요소들을 넣어줄 수도 있고

array()를 생략하고 " [ ] "로 요소들을 감싸 만들 수도 있다. 

 

변수 b를 만드는 방식을 축약형이라고 부른다. 

 

<?php
$a = array('가','나','다','라');

echo $a[0];
echo $a[1];
echo $a[2];
echo $a[3];

배열 안에 있는 요소에 접근하기 위해서는 인덱스(index)를 사용해야 한다.

인덱스는 기본적으로 0부터 시작하는 값이기 때문에 0 ~ [ 배열 크기 - 1 ]까지의 범위를 갖는다. 

 

따라서 인덱스 0은 '가'를 나타내고 1은 '나', 2는 '다', 3은 '라'를 가리키게 된다.

 

 

(+) 연관 배열

연관 배열은 값을 할당하는 데 키 key를 사용하는 배열을 말한다.

 

앞서 본 내용에 따르면 배열 안에 있는 요소에 접근하기 위해서는 인덱스를 사용할 수 있다고 했는데

연관 배열은 인덱스 대신 키를 사용한다. 

 

<?php
$a = array(
    "key1" => '가',
    "key2" => '나',
    "key3" => '다',
    "key4" => '라',
);

echo $a['key3'];
echo $a['key2'];
echo $a['key1'];

코드를 보면 [ 가, 나, 다, 라 ]를 배열의 요소로 넣는 데 앞에 "key" => 가 붙어있는 걸 볼 수 있다.

key1이라는 키는 요소 '가'를 가리킨다!로 생각하면 쉬울 것이다. 그렇기 때문에 '가'라는 값을 참조하기 위해서는 

key1을 인덱스 값으로 넣어주면 되는 것이다. 

 

 

 


Step 6 :: 객체형 [ Object ]

객체 지향 프로그래밍에서 말하는 그 객체이다. 

보통 객체라고 하면 클래스를 만들고 그 클래스 형으로 생성한 인스턴스를 의미한다. 

 

<?php
class MyClass {}

$my_class = new MyClass();
var_dump($my_class);

내용을 작성하진 않았지만 MyClass라는 클래스를 만들어놨다고 가정했을 때

이 클래스 형의 인스턴스를 생성하기 위해서는 new keyword를 사용하면 된다. 

 

MyClass라는 클래스 형의 인스턴스를 만드는 셈인데 이때 만들어진 인스턴스 $my_class를 객체라고 할 수 있다.

변수의 정보를 출력하는 함수 var_dump()를 사용해 my_class 변수의 타입을 출력해 보면 Object인 걸 확인할 수 있다.

 

 

 


Step 7 :: NULL

null은 하나의 값만 가지는 특수 데이터 유형이다.

변수를 선언할 때 값을 할당하지 않았다면 기본적으로 null이 들어가게 된다. 

 

null이라는 의미를 확실히 이해할 필요가 있는 게 0은 말 그대로 0이라는 값이 들어가는 거고

empty는 그 어떤 값도 없이 비어있는 상태를 말하는 것이다.

 

이와 달리 null은 0이나 empty가 아닌 어떤 값이 들어갈 지 아직 확실하지 않은 상태를 의미한다. 

할당된 값은 아직 없는 데 그렇다고 비어있는 건 아니라는 말이다.

 

 

변수를 선언만 해둔 상황을 상상해보면

"값 넣을 거야. 넣을 건데.. 그 값이 정확히 뭔지 몰라. 값이 없는 게 아니라 아직 안 넣은 거야!!" 같은 느낌인 것이다.

 

그렇다 보니 값을 할당하지 않은 str3도 var_dump()로 확인해 보면 NULL이 결과로 나오는 걸 볼 수 있다.

'PHP' 카테고리의 다른 글

php 연산자 다루기 (2)  (0) 2023.07.02
php 연산자 다루기 (1)  (1) 2023.07.01
php 상수 다루기  (0) 2023.06.30
php 변수 다루기 (2)  (0) 2023.06.29
php 변수 다루기 (1)  (0) 2023.06.29
Comments