php isset()和php empty()的区别
在判断PHP变量时经常会遇到 isset() 函数和 empty() 的函数,而在一般的判断中,好像这两个PHP函数没什么太大的区别,首先声明一点,这两个函数都是进行判断 php 变量的,这是一个共同点,我们来看一下在判断变量中有些什么样的区别。
empty() 判断一个变量是否为空,isset() 判断一个变量是否已经设置,这是最本质的区别。
另外empty() 还会检测变量是否为空、为零。当一个变量值为0,empty() 认为这个变量等同于空,即相当于没有设置。而 isset() 判断的是这个变量有没有进行设置,即使变量设置的为空,但是已经定义了,此时isset返回 true。
下面是一段简段的两个函数区别的研究:
[code lang="php"]
未定义$var
';
echo "isset测试:
" ;
if(isset($var)){
echo '变量$var存在!
';
}
echo "empty测试:
";
if(empty ($var)){
echo '变量$var的值为空
';
}
else{
echo '变量$var的值不为空
';
}
echo "变量直接测试:
";
if ($var){
echo '变量$var存在!
';
}
else{
echo '变量$var不存在!
';
}
echo ' ----------------------------------
' ;
echo '$var = \'\'
';
echo "isset测试:
" ;
$var = '' ;
if (isset ($var)){
echo '变量$var存在!
' ;
}
echo "empty测试:
" ;
if (empty ($var)){
echo ' 变量$var的值为空
' ;
}
else{
echo '变量$var的值不为空
' ;
}
echo "变量直接测试:
" ;
if ($var){
echo '变量$var存在!
' ;
}
else {
echo '变量$var不存在!
' ;
}
echo '----------------------------------
' ;
echo '$var = 0
' ;
echo 'isset测试:
' ;
$var = 0;
if (isset ($var )){
echo '变量$var存在!
' ;
}
echo "empty测试:
" ;
if (empty ($var)){
echo '变量$var的值为空
' ;
}
else{
echo '变量$var的值不为空
' ;
}
echo "变量直接测试:
" ;
if ($var ){
echo '变量$var存在!
' ;
}
else {
echo '变量$var不存在!
' ;
}
echo ' ----------------------------------
' ;
echo ' $var = null
' ;
echo ' isset测试:
' ;
$var = null ;
if ( isset ( $var )){
echo ' 变量$var存在!
' ;
}
echo " empty测试:
" ;
if (empty ( $var )){
echo ' 变量$var的值为空
';}
else{
echo ' 变量$var的值不为空
';
}
echo " 变量直接测试:
" ;
if($var){
echo ' 变量$var存在!
' ;
}else{
echo ' 变量$var不存在!
' ;
}
echo '----------------------------------
' ;
echo '$var = "php"
' ;
echo 'isset测试:
' ;
$var = "php " ;
if (isset($var))
{
echo '变量$var存在!
' ;
}
echo "empty测试:
" ;
if (empty($var)){
echo ' 变量$var的值为空
' ;
}
else{
echo ' 变量$var的值不为空
' ;
}
echo " 变量直接测试:
" ;
if($var){
echo ' 变量$var存在!
' ;
}
else{
echo '变量$var不存在!
';
}
?>
[/code]