PHP 데이터 유형
String
String = 문자열은 “안녕하세요!”와 같은 일련의 문자다.
문자열은 따옴표 안의 모든 텍스트가 될 수 있고 ‘(작은 따옴표) 또는 “(큰 따옴표)를 사용할 수 있다.
<?php $x = "안녕하세요!"; $y = '반갑습니다!'; echo $x; echo "
"; echo $y; ?>
반갑습니다!
문자열 함수
strlen()
문자열의 길이를 반환한다.
<?php echo strlen("Hello world!"); ?>
str_word_count()
문자열의 단어 개수를 계산한다.
<?php echo str_word_count("Hello world!"); ?>
strrev()
문자열을 반전시킨다.
<?php echo strrev("Hello world!"); ?>
strpos()
문자열 내의 특정 텍스트를 검색한다.
일치하는 항목이 발견되면 함수는 첫 번째 일치 항목의 문자 위치를 반환한다.
일치하는 항목이 없으면 FALSE를 반환한다.
<?php echo strpos("Hello world!", "world"); ?>
str_replace()
일부 문자를 문자열의 다른 문자로 대체한다.
<?php echo str_replace("world", "Dolly", "Hello world!"); ?>
Integer
정수 데이터 유형은 32비트 시스템에서 -2147483648와 2147483647 사이, 64비트 시스템에서 -9223372036854775808와 9223372036854775807 사이의 숫자다.
이보다 크거나 낮은 값은 정수의 한계를 초과하기 때문에 float로 저장된다.
메모: 4 * 2.5가 10 일지라도 피연산자 중 하나가 float (2.5)이기 때문에 결과가 float로 저장된다는 것이다.
<?php $x = 5985; var_dump($x); ?>
정수 규칙
- 정수에는 하나 이상의 숫자가 있어야 한다.
- 정수에는 소수점이 없어야 한다.
- 정수는 양수 또는 음수일 수 있다.
- 정수는 십진수 (기본 10), 16 진수 (기본 16), 8 진수(기본 8) 또는 2 진수 (기본 2) 표기법으로 지정할 수 있다.
미리 정의된 상수
정수에 대해 다음과 같은 미리 정의 된 상수가 있다.
- PHP_INT_MAX – 지원되는 가장 큰 정수
- PHP_INT_MIN – 지원되는 가장 작은 정수
- PHP_INT_SIZE – 바이트 단위의 정수의 크기
변수의 유형이 정수인지 확인하는 함수
변수의 유형이 정수인지 확인하는 다음과 같은 함수가 있다.
- is_int()
- is_integer() – is_int()의 별칭
- is_long() – is_int()의 별칭
<?php $x = 5985; var_dump(is_int($x)); echo "
"; $x = 59.85; var_dump(is_int($x)); ?>
bool(false)
Float
부동 소수점은 소수점 또는 지수 형식의 숫자다.
2.0, 256.4, 10.358, 7.64E+5, 5.56E-5는 모두 부동 소수점이다.
float 데이터 형식은 일반적으로 최대 1.7976931348623E+308(플랫폼에 따라 다름)의 값을 저장할 수 있으며 최대 정밀도는 14자리다.
<?php $x = 10.365; var_dump($x); ?>
미리 정의된 상수
부동 소수점에 대해 다음과 같은 미리 정의 된 상수가 있다.
- PHP_FLOAT_MAX – 표현 가능한 가장 큰 부동 소수점 숫자
- PHP_FLOAT_MIN – 가장 작은 표현 가능한 양의 부동 소수점 수
- – PHP_FLOAT_MAX – 가장 작은 표현 가능한 음의 부동 소수점 수
- PHP_FLOAT_DIG – 정밀도 손실 없이 부동 소수점으로 반올림할 수 있는 소수점 자릿수
- PHP_FLOAT_EPSILON – 가장 작은 표현 가능한 양수 x이므로 x + 1.0 != 1.0
변수의 유형이 float인지 확인하는 함수
변수의 유형이 float인지 확인하는 다음과 같은 함수가 있다.
- is_float()
- is_double() – is_float()의 별칭
<?php $x = 10.365; var_dump(is_float($x)); ?>
Infinity
PHP_FLOAT_MAX보다 큰 숫자 값은 무한으로 간주된다.
숫자 값이 유한한지 무한한지 확인하는 함수
숫자 값이 유한한지 무한한지 확인하는 다음과 같은 함수가 있다.
- is_finite()
- is_infinite()
<?php $x = 1.9e411; var_dump($x); ?>
NaN
NaN은 숫자가 아님을 의미한다.
NaN은 불가능한 수학적 연산에 사용된다.
값이 숫자가 아닌지 확인하는 함수
값이 숫자가 아닌지 확인하는 다음과 같은 함수가 있다.
- is_nan()
<?php $x = acos(8); var_dump($x); ?>
캐스팅 문자열과 부동 소수점을 정수로
때로는 숫자 값을 다른 데이터 형식으로 캐스팅해야 할 수도 있다.
(int), (integer) 또는 intval() 함수는 값을 정수로 변환하는 데 자주 사용된다.
<?php $x = 23465.768; $int_cast = (int)$x; echo $int_cast; echo "
"; $x = "23465.768"; $int_cast = (int)$x; echo $int_cast; ?>
23465
Boolean
부울은 TRUE 또는 FALSE의 두 가지 가능한 상태를 나타낸다.
부울은 종종 조건부 테스트에 사용된다.
<?php $x = true; $y = false; ?>
Array
배열은 하나의 단일 변수에 여러 값을 저장한다.
<?php $cars = array("Volvo","BMW","Toyota"); var_dump($cars); ?>
[0]=>
string(5) “Volvo”
[1]=>
string(3) “BMW”
[2]=>
string(6) “Toyota”
}
Object
클래스와 객체는 객체 지향 프로그래밍의 중요한 두 가지다.
클래스는 객체에 대한 템플릿이고 객체는 클래스의 인스턴스다.
개별 객체가 작성되면 클래스의 모든 속성과 동작을 상속하지만 각 객체는 속성에 대해 서로 다른 값을 갖는다.
<?php class Car { public $color; public $model; public function __construct($color, $model) { $this->color = $color; $this->model = $model; } public function message() { return "내 차는 " . $this->color . " " . $this->model . "다 !"; } } $myCar = new Car("검정색", "볼보"); echo $myCar -> message(); echo "
"; $myCar = new Car("빨간색", "도요타"); echo $myCar -> message(); ?>
내 차는 빨간색 도요타다 !
NULL
Null은 하나의 값만 가질 수 있는 특수 데이터 유형이다.
데이터 유형 NULL의 변수는 할당된 값이 없는 변수다.
팁: 변수가 값 없이 작성되면 자동으로 NULL 값이 할당된다.
값을 NULL로 설정하여 변수를 비울 수도 있다.
<?php $x = "안녕하세요!"; $x = null; var_dump($x); ?>
Resource
특수 자원 유형은 실제 데이터 유형이 아니다.
PHP 외부의 함수와 리소스에 대한 참조를 저장하는 것이다.
리소스 데이터 형식을 사용하는 일반적인 예는 데이터베이스 호출이다.