코딩 스쿨 PHP

언어선택 : HTMLCSSJAVAJAVASCRIPTMYSQLSQL PHP

PHP Data Types

PHP 데이터 타입: 기본 개념과 사용법

PHP 데이터 타입이란?

PHP에서 데이터 타입은 변수에 저장된 값의 유형을 나타냅니다. PHP는 동적 타이핑을 사용하므로, 변수의 타입을 명시적으로 선언할 필요가 없습니다. PHP는 변수에 할당된 값에 따라 자동으로 적절한 데이터 타입을 결정합니다.

PHP에서 제공하는 데이터 타입은 크게 스칼라 타입(정수, 실수, 문자열, 불리언), 복합 타입(배열, 객체), 특수 타입(NULL, 리소스)으로 나눌 수 있습니다.


1. 스칼라 데이터 타입 (Scalar Types)

1.1 정수형 (Integer)

정수는 소수점이 없는 정수 값을 나타냅니다. PHP에서 정수형은 10진수, 8진수(앞에 0), 16진수(앞에 0x)로 나타낼 수 있습니다.

<?php
  $age = 25;
  $octal = 075;   // 8진수
  $hex = 0x1A;    // 16진수
  echo $age;      // 출력: 25
  echo $octal;    // 출력: 61 (8진수 075는 10진수로 61)
  echo $hex;      // 출력: 26 (16진수 0x1A는 10진수로 26)
?>

1.2 실수형 (Float)

실수는 소수점이 있는 숫자를 나타냅니다. 실수형은 부동소수점 숫자로 저장됩니다.

<?php
  $price = 19.99;
  $pi = 3.14159;
  echo $price;  // 출력: 19.99
?>

1.3 문자열 (String)

문자열은 텍스트 데이터를 저장하며, 작은 따옴표(')나 큰 따옴표(")로 감싸서 표현합니다. 큰 따옴표로 감싼 문자열에서는 변수를 직접 사용할 수 있습니다.

<?php
  $greeting = "안녕하세요";
  $name = "홍길동";
  echo "$greeting, $name!";  // 출력: 안녕하세요, 홍길동!
?>

  • 이스케이프 시퀀스: 문자열에서 특수 문자를 사용할 때는 \\\\를 사용해 이스케이프할 수 있습니다. 예를 들어, 새 줄은 \\\\n, 탭은 \\\\t로 표현됩니다.
<?php
  echo "줄바꿈 예시\\\\n새로운 줄에 출력됩니다.";
?>

1.4 불리언 (Boolean)

불리언은 참(true) 또는 거짓(false) 두 가지 값만 가질 수 있는 데이터 타입입니다. 주로 조건문에서 많이 사용됩니다.

<?php
  $is_active = true;
  $is_logged_in = false;
  echo $is_active;  // 출력: 1 (true는 1로 출력)
  echo $is_logged_in;  // 출력 없음 (false는 출력되지 않음)
?>


2. 복합 데이터 타입 (Compound Types)

2.1 배열 (Array)

배열은 여러 개의 값을 하나의 변수에 저장할 수 있는 데이터 타입입니다. PHP에서 배열은 인덱스 배열과 연관 배열로 나눌 수 있습니다.

  • 인덱스 배열: 키가 숫자로 자동 할당되는 배열.
<?php
  $fruits = array("사과", "바나나", "체리");
  echo $fruits[0];  // 출력: 사과
?>

  • 연관 배열: 키를 직접 지정할 수 있는 배열.
<?php
  $person = array("이름" => "홍길동", "나이" => 25, "직업" => "개발자");
  echo $person["이름"];  // 출력: 홍길동
?>

2.2 객체 (Object)

객체는 클래스의 인스턴스로, 여러 속성과 메서드를 가질 수 있습니다. 객체는 객체 지향 프로그래밍(OOP)의 기본 단위입니다.

<?php
  class Car {
    public $brand;
    public $color;

    public function __construct($brand, $color) {
      $this->brand = $brand;
      $this->color = $color;
    }

    public function getInfo() {
      return "이 차는 $this->brand 브랜드의 $this->color 색상입니다.";
    }
  }

  $myCar = new Car("BMW", "검정");
  echo $myCar->getInfo();  // 출력: 이 차는 BMW 브랜드의 검정 색상입니다.
?>


3. 특수 데이터 타입 (Special Types)

3.1 NULL

NULL값이 없음을 나타내는 특수 타입입니다. 변수에 값이 설정되지 않았거나, null로 명시적으로 설정된 경우 해당 변수의 값은 NULL이 됩니다.

<?php
  $var = null;
  echo $var;  // 출력 없음
?>

3.2 리소스 (Resource)

리소스는 데이터베이스 연결이나 파일 핸들과 같은 외부 리소스를 참조하는 특수 데이터 타입입니다. 이 값은 PHP 내부에서만 관리되며, 리소스 핸들은 fopen()이나 curl_init() 같은 함수로 생성됩니다.

<?php
  $file = fopen("test.txt", "r");
  var_dump($file);  // 출력: resource(2) of type (stream)
?>

리소스는 PHP에서 직접적으로 값으로 사용되기보다는 핸들로 관리되며, 특정 작업을 수행하기 위해서 필요합니다.


4. 데이터 타입 확인 및 변환

PHP에서는 변수의 데이터 타입을 확인하거나 변환할 수 있는 다양한 함수가 있습니다.

4.1 데이터 타입 확인

  • gettype(): 변수의 데이터 타입을 반환합니다.
  • var_dump(): 변수의 타입과 값을 자세히 출력합니다.
<?php
  $var = "PHP";
  echo gettype($var);  // 출력: string
  var_dump($var);  // 출력: string(3) "PHP"
?>

4.2 데이터 타입 변환

PHP에서는 특정 데이터 타입으로 변환할 수 있는 여러 방법이 있습니다.

  • 캐스팅(Casting): 데이터 타입을 명시적으로 변환합니다.
<?php
  $num = "123";  // 문자열
  $int_num = (int)$num;  // 정수로 변환
  var_dump($int_num);  // 출력: int(123)
?>

  • 자동 타입 변환: PHP는 필요에 따라 자동으로 데이터 타입을 변환합니다.
<?php
  $a = "10";  // 문자열
  $b = 5;     // 정수

  $sum = $a + $b;  // PHP가 자동으로 문자열 "10"을 정수로 변환
  echo $sum;  // 출력: 15
?>


5. 타입 검사 함수

PHP에는 데이터 타입을 검사할 수 있는 여러 가지 함수가 제공됩니다.

  • is_int(): 정수형인지 확인합니다.
  • is_float(): 실수형인지 확인합니다.
  • is_string(): 문자열인지 확인합니다.
  • is_bool(): 불리언인지 확인합니다.
  • is_array(): 배열인지 확인합니다.
  • is_object(): 객체인지 확인합니다.
  • is_null(): NULL 값인지 확인합니다.
<?php
  $var = 10.5;

  if (is_float($var)) {
    echo "변수는 실수형입니다.";  // 출력: 변수는 실수형입니다.
  }
?>


6. 요약

PHP는 다양한 데이터 타입을 지원하며, 변수에 할당된 값에 따라 자동으로 타입을 결정합니다. 주요 데이터 타입으로는 정수, 실수, 문자열, 불리언과 같은 스칼라 타입, 배열, 객체와 같은 복합 타입, 그리고 NULL, 리소스와 같은 특수 타입이 있습니다. PHP는 데이터 타입을 유연하게 처리하고 자동 변환을 지원하지만, 명시적인 변환을 통해 더 정확한 제어도 가능합니다.


copyright ⓒ 스타트코딩 all rights reserved.
이메일 : startcodingim@gamil.com