PHP 매뉴얼
이전 |  | 다음

# M. 부록. PHP 타입 비교 테이블

다음 테이블은 PHP 타입 과 느슨한 비교와 엄격한 비교를 위한 비교 연산자의 동작을 설명한다. 이 부록은 타입 저글링에 관한 매뉴얼 섹션과도 관련이 있다. 다양한 유저 주석과 BlueShoes의 보고서를 통해 영감을 얻을수 있다.

이 테이블을 이용하기 전에, 타입과 각 타입의 의미를 이해해야 한다. 예를 들면, `"42"`는 string타입이고, 반면에 `42`는 integer타입이다. `FALSE`는 boolean타입이고, `"false"`는 string타입이 되는것이다.

> 참고: HTML 폼은 정수, 부동소수점, 논리 타입으로 전달하지 않는다. 문자열 타입으로 전달한다. 문자열이 숫자값인지 확인하기 위해서는 is_numeric()를 사용할수 있다.

> 참고: `$x`가 선언되지 않았는데 단순히 `if ($x)`를 수행하면 `E_NOTICE` 레벨의 에러가 발생할것이다. 대신 empty()나 isset()을 사용하고 그 변수를 초기화시키도록 한다.

표 M-1. PHP 함수로 `$x` 비교하기

Expression | gettype() | empty() | is_null() | isset() | boolean : `if($x)`
--- | --- | --- | --- | --- | ---
`$x = "";` | string | `TRUE` | `FALSE` | `TRUE` | `FALSE`
`$x = `NULL`` | NULL | `TRUE` | `TRUE` | `FALSE` | `FALSE`
`var $x;` | NULL | `TRUE` | `TRUE` | `FALSE` | `FALSE`
`$x` is undefined | NULL | `TRUE` | `TRUE` | `FALSE` | `FALSE`
`$x = array();` | array | `TRUE` | `FALSE` | `TRUE` | `FALSE`
`$x = false;` | boolean | `TRUE` | `FALSE` | `TRUE` | `FALSE`
`$x = true;` | boolean | `FALSE` | `FALSE` | `TRUE` | `TRUE`
`$x = 1;` | integer | `FALSE` | `FALSE` | `TRUE` | `TRUE`
`$x = 42;` | integer | `FALSE` | `FALSE` | `TRUE` | `TRUE`
`$x = 0;` | integer | `TRUE` | `FALSE` | `TRUE` | `FALSE`
`$x = -1;` | integer | `FALSE` | `FALSE` | `TRUE` | `TRUE`
`$x = "1";` | string | `FALSE` | `FALSE` | `TRUE` | `TRUE`
`$x = "0";` | string | `TRUE` | `FALSE` | `TRUE` | `FALSE`
`$x = "-1";` | string | `FALSE` | `FALSE` | `TRUE` | `TRUE`
`$x = "php";` | string | `FALSE` | `FALSE` | `TRUE` | `TRUE`
`$x = "true";` | string | `FALSE` | `FALSE` | `TRUE` | `TRUE`
`$x = "false";` | string | `FALSE` | `FALSE` | `TRUE` | `TRUE`

표 M-2. `==`로 느슨한 비교

| `TRUE` | `FALSE` | `1` | `0` | `-1` | `"1"` | `"0"` | `"-1"` | `NULL` | `array()` | `"php"`
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
`TRUE` | `TRUE` | `FALSE` | `TRUE` | `FALSE` | `TRUE` | `TRUE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `TRUE`
`FALSE` | `FALSE` | `TRUE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `TRUE` | `TRUE` | `FALSE`
`1` | `TRUE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
`0` | `FALSE` | `TRUE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `TRUE` | `FALSE` | `TRUE`
`-1` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE`
`"1"` | `TRUE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
`"0"` | `FALSE` | `TRUE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
`"-1"` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE`
`NULL` | `FALSE` | `TRUE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `TRUE` | `FALSE`
`array()` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE`
`"php"` | `TRUE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE`

표 M-3. `===`로 엄격한 비교

| `TRUE` | `FALSE` | `1` | `0` | `-1` | `"1"` | `"0"` | `"-1"` | `NULL` | `array()` | `"php"`
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
`TRUE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
`FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
`1` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
`0` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
`-1` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
`"1"` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
`"0"` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
`"-1"` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE`
`NULL` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE`
`array()` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE`
`"php"` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE`

> PHP 3.0 주의 사항: 문자열 값 `"0"`은 PHP 3에서 비어있다고 처리되지 않는다. 이런 동작은 PHP 4에서 비어있다고 처리되도록 변경되었다.

이전 | 처음으로 | 다음
유닉스 도메인: UNIX와 UDG | 위로 | 해석기 토큰 목록