type juggling
PHP는 변수 선언에서 명시 적 유형 정의를 요구하지 않거나 지원하지 않습니다. 변수 유형은 변수가 사용되는 컨텍스트에 따라 결정됩니다.
<?PHP
//==============================
//isset()
//==============================
$a = 'a';
var_dump(isset($a)); => TRUE
//------------------------------
$a = '';
var_dump(isset($a)); => TRUE
//------------------------------
$a = NULL;
var_dump(isset($a)); => FALSE
//------------------------------
$a;
var_dump(isset($a)); => FALSE
//------------------------------
$a = 1;
var_dump(isset($b)); => FALSE
//==============================
//is_null()
//==============================
$a = NULL;
var_dump(is_null($a)); => TRUE
//------------------------------
$a;
var_dump(is_null($a)); => TRUE
//------------------------------
$a = 1;
var_dump(is_null($b)); => TRUE
//------------------------------
$a = 1;
var_dump(is_null($a)); => FALSE
//------------------------------
$a = '';
var_dump(is_null($a)); => FALSE
//==============================
//empty() / if(!$a)
//==============================
$a = '';
var_dump(empty($a)); => TRUE
//------------------------------
$a = NULL;
var_dump(empty($a)); => TRUE
//------------------------------
$a = 0;
var_dump(empty($a)); => TRUE
//------------------------------
$a = '0';
var_dump(empty($a)); => TRUE
//------------------------------
$a;
var_dump(empty($a)); => TRUE
//------------------------------
$a = 1;
var_dump(empty($b)); => TRUE
//------------------------------
$a = ' ';
var_dump(empty($a)); => FALSE
이외에는 FALSE
//==============================
//switch() case
//==============================
$a = 1;
switch( $a ){
case '1' : echo 1; break;
case 2 : echo 2; break;
default : echo 'default';
}
=> 1
//------------------------------
$a = '1';
switch( $a ){
case 1 : echo 1; break;
case '1' : echo 2; break;
default : echo 'default';
}
=> 1
//==============================
//equal 연산자
//==============================
$a = 0;
if( $a == 0 ) echo 1;
if( $a == '' ) echo 2;
if( $a == null ) echo 3;
if( $a == FALSE ) echo 4;
if( $a == '0' ) echo 5;
if( $a == 1 ) echo 6;
echo "\n";
if( $a === 0 ) echo 1;
if( $a === '' ) echo 2;
if( $a === null ) echo 3;
if( $a === FALSE ) echo 4;
if( $a === '0' ) echo 5;
if( $a === 1 ) echo 6;
echo "\n";
=>
12345
1
//---------------------------
$a = '0';
if( $a == 0 ) echo 1;
if( $a == '' ) echo 2;
if( $a == null ) echo 3;
if( $a == FALSE ) echo 4;
if( $a == '0' ) echo 5;
if( $a == 1 ) echo 6;
echo "\n";
if( $a === 0 ) echo 1;
if( $a === '' ) echo 2;
if( $a === null ) echo 3;
if( $a === FALSE ) echo 4;
if( $a === '0' ) echo 5;
if( $a === 1 ) echo 6;
echo "\n";
=>
145
5
?>
참고 : php.net/manual/en/language.types.type-juggling.php
'백엔드 개발 놀이터 > PHP' 카테고리의 다른 글
PHP - 분기 , 반복 (0) | 2020.05.17 |
---|---|
PHP - 날짜관련 함수모음 (0) | 2020.05.17 |
PHP - 수학함수 (0) | 2020.05.17 |
PHP - 스트링처리 , 함수모음 (0) | 2020.05.17 |
2018년 PHP 프레임워크 순위 베스트 10 (0) | 2020.03.05 |