Web
Php 분류

PHP 기본타입

작성자 정보

  • console 작성
  • 작성일

컨텐츠 정보

본문

기본 타입

타입(data type)이란 프로그램에서 다룰 수 있는 값의 종류를 의미합니다.

PHP에서는 여러 가지 형태의 타입을 미리 정의하여 제공하고 있으며, 이것을 기본 타입이라고 합니다.

 

PHP가 제공하는 기본 타입은 다음과 같습니다.

 

1. 불리언(boolean)

2. 정수(integer)

3. 실수(float)

4. 문자열(string)

5. 배열(array)

6. 객체(object)

7. 리소스(resource)

8. NULL


불리언(boolean)

불리언은 참(true)과 거짓(false)을 표현합니다.

PHP에서 불리언은 상수인 true와 false를 사용해 나타내며, 대소문자를 구분하지는 않습니다.

 

PHP에서 다음 값들은 불리언 타입으로 변환되면, 모두 false로 인식됩니다.

 

 - 불리언 : false

 - 정수 : 0

 - 실수 : 0.0

 - 빈 문자열과 문자열 "0"

 - 빈 배열

 - NULL

 

따라서 위의 값들 이외의 모든 값(음수도 포함)은 true로 인식됩니다.

 

예제

var_dump((bool) false);   // false

var_dump((bool) "false")// true
var_dump((bool) 0);       // false
var_dump((bool) -100);    // true
var_dump((bool) 0.0);     // false
var_dump((bool) "");      // false
var_dump((bool) "0");     // false
var_dump((bool) array())// false
var_dump((bool) null);    // false

코딩연습 ▶

 

위의 예제에서 보면 상수 false와 문자열 "false"는 전혀 다른 의미로 해석되는 것을 확인할 수 있습니다.

문자열 "false"는 빈 문자열이나 문자열 "0"이 아니므로, true로 인식됩니다.

 

var_dump() 함수는 인수로 전달받은 변수의 타입과 값을 구조화된 정보로 보여주는 함수입니다.

정수(integer)

정수(integer)는 부호를 가지는 소수부가 없는 수를 의미합니다.

PHP에서 정수의 표현 범위는 운영체제에 따라 달라지며, 64비트 운영체제를 기준으로 -263 ~ (263 - 1) 사이의 값을 가집니다.

 

PHP에서는 부호가 없는 정수(unsigned integer)는 지원하지 않습니다.

또한, 정수는 10진수, 8진수(0으로 시작), 16진수(0x로 시작)로도 표현할 수 있습니다.

예제

echo "integer 타입의 크기는 ".PHP_INT_SIZE."바이트 입니다.<br>";
echo "integer 타입이 표현할 수 있는 가장 큰 수는 ".PHP_INT_MAX." 입니다.<br>";
$int_01 = 100;
$int_02 = 2147483647// integer가 표현할 수 있는 범위를 넘지 않는 값을 대입함.
$int_03 = 2147483648// integer가 표현할 수 있는 범위를 넘는 값을 대입함.

코딩연습 ▶

 

위의 예제에서 상수 PHP_INT_SIZE는 정수 타입의 크기를 나타냅니다.

따라서 상수 PHP_INT_MAX의 값은 정수 타입이 표현할 수 있는 가장 큰 수를 가리킵니다.

PHP에서는 변수에 정수의 최대 범위를 넘는 값이 대입되면, 그 변수는 자동으로 실수형(float)으로 인식됩니다.


실수(float)

실수는 소수부나 지수부를 가지는 수를 의미하며, 정수보다 더 넓은 표현 범위를 가집니다.

PHP에서 실수의 표현 범위는 운영체제에 따라 달라지지만 대략 ~1.8e307까지 표현할 수 있습니다.

 

하지만 컴퓨터에서 실수를 표현하는 방식은 반드시 오차가 존재하는 한계를 지니므로, 실수형끼리 직접 값을 비교하는 것은 피하는 것이 좋습니다.

예제

$float_01 = 3.14;
$float_02 = 1.23e-4;
$float_03 = 1.8E307// float이 표현할 수 있는 범위를 넘지 않는 값을 대입함.
$float_04 = 1.8E308// float이 표현할 수 있는 범위를 넘는 값을 대입함.

코딩연습 ▶

 

위의 예제처럼 PHP에서는 e 지수 표현과 E 지수 표현이 모두 가능합니다.

또한, 변수에 실수의 최대 범위를 넘는 값이 대입되면, 그 변수는 자동으로 미리 정의된 상수인 INF로 인식됩니다.

 

미리 정의된 상수인 INF는 무한(infinite)이라는 값을 의미합니다.

문자열(string)

문자열(string)은 일련의 연속된 문자(character)들의 집합을 의미합니다.

PHP에서 문자열 리터럴은 큰따옴표("")나 작은따옴표('')로 감싸서 표현합니다.

 

오랫동안 사용되어 온 아스키(ASCII) 인코딩 환경에서 영문자는 한 글자당 1바이트, 한글은 한 글자당 2바이트로 표현됩니다.

하지만 UTF-8 인코딩 환경에서는 영문자는 한 글자당 1바이트, 한글은 한 문자당 3바이트로 표현됩니다.

예제

$str_01 = "PHP";

$str_02 = "자바스크립트";

 

echo strlen($str_01)// 3

echo strlen($str_02)// 18

코딩연습 ▶

 

우리 사이트의 코딩연습은 UTF-8 인코딩 환경에서 처리됩니다.

따라서 위의 예제에서는 한글이 한 문자당 3바이트로 처리되는 것을 확인할 수 있습니다.

 

strlen() 함수는 인수로 전달받은 문자열의 길이를 반환하는 함수입니다.

배열(array)

PHP에서 배열(array)은 한 쌍의 키(key)와 값(value)으로 이루어진 맵(map)으로 구성되는 순서가 있는 집합을 의미합니다.

 

맵의 키값으로는 정수와 문자열만이 가능하며, 하나의 배열에 두 가지 키값을 같이 사용할 수 있습니다.

만약 정수와 문자열 이외에 다른 타입의 값을 키값으로 사용하면, 내부적으로 다음과 같이 타입 변환이 이루어집니다.

 

- 불리언은 true는 1로, false는 0으로 자동 타입 변환됩니다.

- 유효한 숫자로만 이루어진 문자열은 정수나 실수로 자동 타입 변환됩니다.

- 실수는 소수 부분이 제거되고, 정수로 자동 타입 변환됩니다.

- NULL은 빈 문자열("")로 자동 타입 변환됩니다.

- 배열과 객체는 배열의 키값으로 사용할 수 없습니다.

 

타입 변환에 대한 더 자세한 사항은 PHP 타입 변환 수업에서 확인할 수 있습니다.

PHP 타입 변환 수업 확인 =>

 

예제

$arr = array(
    1 => "첫 번째 값",   // PHP의 배열에서 키값의 1과 "1"은 같은 값을 나타냄.
    "1" => "두 번째 값"// 같은 키값을 사용하여 두 번 선언했기 때문에 나중에 선언된 "두 번째 값"만 남게됨.
    10 => "세 번째 값",
    -10 => "네 번째 값"
);
var_dump($arr);
echo $arr[1];
echo $arr["1"];
echo $arr[10];
echo $arr[-10];

코딩연습 ▶

 

위의 예제에서 첫 번째 배열 요소의 키값인 1과 두 번째 배열 요소의 키값인 "1"은 같은 값으로 저장됩니다.

PHP에서는 같은 키값으로 여러 번 맵(map)을 선언할 경우, 그 키에 해당하는 값을 계속 덮어써서 맨 마지막에 선언된 값만을 저장하게 됩니다.

 

배열에 대한 더 자세한 사항은 PHP 배열 수업에서 확인할 수 있습니다.

PHP 배열 수업 확인 =>


객체(object)

객체(object)는 클래스의 인스턴스(instance)를 저장하기 위한 타입입니다.

이러한 객체는 프로퍼티(properties)과 메소드(methods)를 포함할 수 있습니다.

예제

class Lecture {
    function Lecture({
        $this->lec_01 = "PHP";
        $this->lec_02 = "MySQL";
    }
}
$var = new Lecture// 객체 생성
echo $var->lec_01;  // 객체의 속성 접근
echo "<br>";
echo $var->lec_02;

코딩연습 ▶

 

클래스와 객체에 대한 더 자세한 사항은 PHP 클래스와 객체 수업에서 확인할 수 있습니다.

PHP 클래스와 객체 수업 확인 =>


리소스(resource)

리소스(resource)는 PHP 외부에 존재하는 외부 자원을 의미합니다.

이러한 리소스는 데이터베이스 함수 등에서 데이터베이스 연결 등을 반환할 때 사용됩니다.


NULL

NULL은 오직 한 가지 값(NULL 상수)만을 가질 수 있는 특별한 타입입니다.

NULL 타입의 변수란 아직 어떠한 값도 대입되지 않은 변수를 의미합니다.

예제

$var_01;
var_dump($var_01)// 초기화되지 않은 변수를 참조


$var_01 = 100;     // $var_01 변수를 초기화함.
var_dump($var_01);


unset($var_02);    // $var_01 변수를 삭제함.
var_dump($var_02)// 삭제된 변수를 참조

코딩연습 ▶

 

위의 예제처럼 PHP에서 초기화하지 않은 변수는 NULL로 자동 초기화됩니다.

또한, 삭제되거나 존재하지 않는 변수를 참조할 경우에도 NULL을 반환합니다.

 

unset() 함수는 인수로 전달받은 변수를 메모리에서 삭제하는 함수입니다.


관련자료

댓글 0
등록된 댓글이 없습니다.
Php 24 / 1 페이지
RSS
  • 그누보드 썸네일 이미지 화질 개선 방법
    등록자 PixelProphet
    등록일 01.10 조회 2733

    Php 그누보드에서 이미지를 올릴때, 간혹 이미지 화질이 떨어져 보이는 현상이 있습니다.... 이럴 때 제가 찾아본 방법 중에 가장 쉽게 해결 할 수 …

  • PHP 배열의 기초
    등록자 console
    등록일 01.05 조회 2529

    Php 배열(array)이란? PHP에서 배열(array)은 맵(map)으로 이루어진, 순서가 있는 집합을 의미합니다. 맵(map)은한 쌍의 키(key…

  • PHP 기타 제어문
    등록자 console
    등록일 01.05 조회 2560

    Php 루프의 제어 일반적으로 조건식의 검사를 통해 루프로 진입하면,다음 조건식을검사하기 전까지 루프 안에 있는 모든 명령문을 실행합니다. 사용자는 c…

  • PHP 반복문
    등록자 console
    등록일 01.05 조회 2531

    Php 반복문 반복문이란 프로그램 내에서 같은 명령을 일정 횟수만큼 반복하여수행하는명령문입니다. 프로그램이 처리하는 대부분의코드는 반복적인 형태가 많으…

  • PHP 조건문
    등록자 console
    등록일 01.05 조회 2380

    Php PHP 표현식 표현식(expressions)은 PHP에서 가장 중요한 구성요소입니다. 표현식이란 모든 것이 값을 갖는다는 의미이며, PHP에서 …

  • PHP 기타 연산자
    등록자 console
    등록일 01.05 조회 2347

    Php 삼항 연산자(ternaryoperator) 삼항 연산자는 유일하게 피연산자를 세 개나 가지는 조건 연산자입니다. 삼항 연산자의 문법은 다음과 같…

  • PHP 비트 연산자
    등록자 console
    등록일 01.05 조회 2555

    Php 비트 연산자(bitwise operator) 비트 연산자는 논리 연산자와 비슷하지만, 비트(bit) 단위로 논리 연산을 수행합니다. 또한, 비트…

  • PHP 논리 연산자
    등록자 console
    등록일 01.05 조회 2613

    Php 논리 연산자(logical operator) 논리 연산자는 논리식을 판단하여, 참(true)과 거짓(false)을 반환합니다. and, or, …

  • PHP 비교 연산자
    등록자 console
    등록일 01.05 조회 2634

    Php 비교 연산자(comparisonoperator) 비교 연산자는피연산자사이의 상대적인 크기를 판단하여,참(true)과 거짓(false)을 반환합니…

  • PHP 증감연산자
    등록자 console
    등록일 01.05 조회 2242

    Php 증감 연산자(increment and decrement operator) 증감 연산자는피연산자를 1씩 증가 혹은 감소시킬 때사용하는 연산자입니다…

  • PHP 대입연산자
    등록자 console
    등록일 01.05 조회 2310

    Php 대입 연산자(assignment operator) 대입 연산자는변수에 값을 대입할 때 사용하는 이항 연산자이며, 피연산자들의 결합 방향은 오른쪽…

  • PHP 산술연산자
    등록자 console
    등록일 01.05 조회 2311

    Php 연산자(operator) PHP는다양한 연산을 위해많은 종류의 연산자를 제공하고 있습니다. 산술 연산자(arithmetic operator) 산…

  • PHP 타입변환
    등록자 console
    등록일 01.05 조회 2714

    Php 자동 타입 변환(type juggling) PHP에서는 변수를 선언할 때 타입을 명시할 필요가 없습니다. 왜냐하면, PHP에서 변수의 타입은 해…

  • PHP 기본타입
    등록자 console
    등록일 01.05 조회 2332

    Php 기본 타입 타입(data type)이란 프로그램에서 다룰 수 있는 값의 종류를 의미합니다. PHP에서는여러 가지 형태의 타입을 미리 정의하여제공…

  • PHP 상수
    등록자 console
    등록일 01.05 조회 2533

    Php 상수(constant) 상수(constant)란 변수와 마찬가지로 데이터를 저장할 수 있는 메모리 공간을 의미합니다. 하지만 상수가 변수와 다른…