4. PHP

[Project H4C] 2. PHP 기초 (3)

도피디 2020. 7. 11. 19:30
반응형

[Project H4C] 2. PHP 기초 (3)

 

PHP 기본 타입

 

  • boolean(불리언)

참과 거짓을 표현한다. 대소문자를 구분하지 않는다.

 

다음 값들은 불리언 타입으로 변환되며 모두 false로 인식 된다

- 불리언 : false

- 정수 : 0

- 실수 : 0.0

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

- 빈 배열

- NULL

 

위의 값들을 제외한 모든 값(음수 포함)은 true로 인식된다.

 

 

  • integer(정수)

부호를 가지는 소수부가 없는 수

64비트 운영체제를 기준으로 -263 ~ (263 - 1) 사이의 값

PHP에서는 부호가 없는 정수는 지원하지 않는다.

 

 

  • float(실수)

소수부나 지수부를 가지는 수, 정수보다 더 넓은 표현 범위를 가진다.

 

 

  • string(문자열)

일련의 연속된 문자(character)들의 집합

큰따옴표("")나 작은따옴표('')로 감싸서 표현

e.g.)

$str_01 = "PHP";

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

 

echo strlen($str_01); // 3

echo strlen($str_02); // 18

 

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

 

 

  • array(배열)

한 쌍의 키(key)와 값(value)으로 이루어진 맵(map)으로 구성되는 순서가 있는 집합

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

만약 정수와 문자열 이외에 다른 타입의 값을 키값으로 사용하면 다음과 같은 변화가 일어난다.

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

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

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

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

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

 

e.g.)

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

 

PHP에서는 같은 키값으로 여러 번 맵(map)을 선언할 경우,

그 키에 해당하는 값을 계속 덮어써서 맨 마지막에 선언된 값만을 저장하게 됩니다.

 

 

  • object(객체)

클래스의 instance(인스턴스)를 저장하기 위한 타입이다. 
객체는 properties과 methods를 포함할 수 있습니다.

e.g.)

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;

 

 

  • resource

PHP 외부에 존재하는 외부 자원을 의미

 

 

  • NULL

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

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

e.g.)

$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() 함수는 인수로 전달받은 변수를 메모리에서 삭제하는 함수이다.

 

 

  • 자동 타입 변환

PHP에서 변수를 선언할 때 타입을 명시할 필요가 없는데 그 이유는,

PHP에서 변수의 타입은 해당 변수에 대입하는 값에 따라 자동으로 결정되기 때문이다.

이렇게 타입이 상황에 따라 자동으로 변환되는 것을 자동 타입 변환(type juggling)이라고 한다. 

e.g.)

$var = "문자열"; // string

$var = 10;       // int

$var = 3.14;     // float

 

 

  • 강제 타입 변환

사용자가 직접 데이터의 타입을 변환할 때 사용한다.

타입 캐스트 연산자인 괄호(())를 사용한다.

변환시키고자 하는 데이터나 변수의 앞에 괄호를 붙이고, 그 괄호 안에 변환할 타입을 적으면 된다.

e.g.)

$var_01 = 10;

var_dump($var_01);           // int(10)  

$var_02 = (boolean) $var_01;

var_dump($var_02);           // bool(true)

 

$var_03 = 0;

var_dump($var_03);           // int(0)  

$var_04 = (boolean) $var_03;

var_dump($var_04);           // bool(false)

 

 

  • 가변 변수

변수의 이름을 동적으로 바꿀 때 사용한다.

해당 변수의 값을 또 다른 변수의 이름으로 취급한다.

e.g.)

$PHP = "HTML";

$HTML = "CSS";

$CSS = "JavaScript";

$JavaScript = "Ajax";

$Ajax = "PHP";  

 

echo $PHP;       // HTML

echo $$PHP;      // $HTML -> CSS

echo $$$PHP;     // $$HTML -> $CSS -> JavaScript

echo $$$$PHP;    // $$$HTML -> $$CSS -> $JavaScript -> Ajax

echo $$$$$PHP;   // $$$$HTML -> $$$CSS -> $$JavaScript -> $Ajax -> PHP

echo $$$$$$PHP;  // $$$$$HTML -> $$$$CSS -> $$$JavaScript -> $$Ajax -> $PHP -> HTML

echo $$$$$$$PHP; // $$$$$$HTML -> $$$$$CSS -> $$$$JavaScript -> $$$Ajax -> $$PHP -> $HTML -> CSS ...

 

위 예시처럼 PHP에서는 달러($) 기호를 사용하여 변수의 이름을 유동적으로 설정할 수 있다. 

반응형

'4. PHP' 카테고리의 다른 글

[Project H4C] 3. 연산자  (0) 2020.07.11
[Project H4C] 2. PHP 기초 (2)  (0) 2020.07.11
[Project H4C] 2. PHP 기초 (1)  (0) 2020.07.11
[Project H4C] 1. PHP 시작  (0) 2020.07.11