php
PHP - isset 함수
bool isset ( mixed $var [, mixed $var [, $... ]] )
(PHP 4, PHP 5)
isset은 값이 존재하는지 체크하고, empty 는 값이 비어 있는지 체크합니다. isset 은 변수나, 객체만을 체크하고, 여러 변수가 주어지면 순서는 왼쪽에서 오른쪽으로 체크합니다.
다음은 자료형 비교입니다.
(PHP 4, PHP 5)
isset은 값이 존재하는지 체크하고, empty 는 값이 비어 있는지 체크합니다. isset 은 변수나, 객체만을 체크하고, 여러 변수가 주어지면 순서는 왼쪽에서 오른쪽으로 체크합니다.
<?php
// $var는 변수를 정의한 것으로 판단합니다.
$var = '';
if (isset($var)) {
echo "이 변수는 설정되었으므로 출력합니다.";
}
// 결과: 이 변수는 설정되었으므로 출력합니다.
// 다음은 isset()의 반환값입니다.
$a = "test";
$b = "anothertest";
var_dump(isset($a));
// 결과: true
var_dump(isset($a, $b));
// 결과: true
unset ($a);
// $a 변수를 지웠으므로 false
var_dump(isset($a));
// 결과: false
// 여러 변수일 경우, 왼쪽에서 오른쪽 순으로 체크하는데,
// $b 변수가 있어도 $a 변수값은 비어 있으므로 false,
// $a 변수가 있고, $b 변수가 비어 있어도 false입니다.
var_dump(isset($a, $b));
// 결과: false
$foo = NULL;
var_dump(isset($foo));
// 결과: false
?>
<?php
$a = array ('test' => 1, 'hello' => NULL);
var_dump(isset($a['test'])); // 결과: true
var_dump(isset($a['foo'])); // 결과: false
var_dump(isset($a['hello'])); // 결과: false
// 'hello' 키는 NULL이기에 정의되지 않은 것으로 판단합니다.
// NULL 키를 확인하려면 array_key_exists 함수를 사용하면 됩니다.
// 이 함수는 키값을 확인합니다.
var_dump(array_key_exists('hello', $a)); // 결과: true
?>
다음은 자료형 비교입니다.
<?php
$x = null;
var_dump(isset($x)); // 결과: false
$x = "";
var_dump(isset($x)); // 결과: true
$x = array();
var_dump(isset($x)); // 결과: true
$x = false;
var_dump(isset($x)); // 결과: true
$x = true;
var_dump(isset($x)); // 결과: true
$x = 1;
var_dump(isset($x)); // 결과: true
$x = 42;
var_dump(isset($x)); // 결과: true
$x = 0;
var_dump(isset($x)); // 결과: true
$x = -1;
var_dump(isset($x)); // 결과: true
$x = "1";
var_dump(isset($x)); // 결과: true
$x = "0";
var_dump(isset($x)); // 결과: true
$x = "-1";
var_dump(isset($x)); // 결과: true
$x = "true";
var_dump(isset($x)); // 결과: true
$x = "false";
var_dump(isset($x)); // 결과: true
?>
위 예제에서 확인할 수 있듯 빈 문자열이나 빈 배열 값을 제외하려면, 다음 예와 같이 처리해줄 수 있습니다.
다음은 객체 비교 예제입니다.
<?php
function issset($var){
$var = trim($var);
if(($var === "") || ($var === array()) || ($var === false)){
$var = null;
}
if(isset($var)){
return true;
}
return false;
}
$x = "";
var_dump(issset($x)); // 결과: false
?>
다음은 객체 비교 예제입니다.
<?php
class T {
function __isset($att){
$props = get_object_vars($this);
return array_key_exists($att, $props);
}
}
$x = new T();
$x->foo_exists = 4;
var_dump(isset($x->foo_exists)); // 결과: true
var_dump(isset($x->bar_exists)); // 결과: true
?>
0 댓글