[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 |