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

+ Recent posts