>  기사  >  백엔드 개발  >  PHP에서 isset 함수와 빈 함수를 사용하는 것의 차이점은 무엇입니까? (포괄적인)

PHP에서 isset 함수와 빈 함수를 사용하는 것의 차이점은 무엇입니까? (포괄적인)

不言
不言원래의
2018-08-27 17:16:251187검색

이 기사에서 제공하는 내용은 PHP에서 isset 함수 사용과 빈 함수 사용의 차이점에 관한 것입니다. (종합), 특정 참고 가치가 있습니다. 도움이 필요한 친구가 참고할 수 있기를 바랍니다.

PHP의 isset() 함수는 일반적으로 변수가 설정되었는지 감지하는 데 사용됩니다.
Format: bool isset ( mix var [, Mixed var [, .. .] ] )

기능: 변수가 설정되었는지 확인

반환값:

#🎜🎜 #변수가 설정되지 않은 경우 존재하는 경우 FALSE를 반환

변수가 존재하고 그 값이 NULL이면 FALSE를 반환
변수가 존재하고 값이 NULL이 아닌 경우 TRUE를 반환
동시에 여러 변수를 검사할 때 이전 요구 사항을 모두 충족하는 경우에만 각 단일 항목 TRUE가 반환되고, 그렇지 않으면 결과는 FALSE가 됩니다.
버전: PHP 3, PHP 4, PHP 5 #🎜 🎜#추가 지침:
unset()을 사용하여 변수를 해제한 후에는 더 이상 isset()이 없습니다.
PHP 함수 isset()은 변수에만 사용할 수 있습니다. 다른 매개변수를 전달하면 구문 분석 오류가 발생합니다.
상수가 설정되었는지 확인하려면 정의된() 함수를 사용하세요.

PHP의 empty() 함수는 값이 비어 있는지 여부를 결정합니다


Format: bool 비어 있음(혼합 var) #🎜 🎜 #

기능: 변수가 비어 있는지 확인

반환값:

변수가 존재하지 않는 경우 TRUE를 반환합니다.
변수가 존재하고 해당 값이 "", 0, "0", NULL, FALSE, array(), var $var이고 속성이 없는 객체인 경우 TRUE

If 변수가 존재하고 값이 "", 0, "0", NULL, FALSE, array(), var $var 및 속성이 없는 객체인 경우 FALSE가 반환됩니다.

버전: PHP 3, PHP 4, PHP 5
추가 설명:
empty() =!(부울) var의 반환 값이지만 변수가 정의되지 않았기 때문에 경고 메시지가 생성되지 않습니다. 자세한 내용은 부울로 변환을 참조하세요.
empty()는 변수에만 사용할 수 있습니다. 다른 매개변수를 전달하면 Paser 오류가 발생하고 작업이 종료됩니다.
상수가 설정되었는지 확인하려면 정의된() 함수를 사용하세요.


예: empty()와 isset()의 간단한 비교

<?php 
$var = 0; 
// 结果为 true,因为 $var 为空 
if (empty($var)) { 
echo &#39;$var is either 0 or not set at all&#39;; 
} 
// 结果为 false,因为 $var 已设置 
if (!isset($var)) { 
echo &#39;$var is not set at all&#39;; 
} 
?>
참고: 이는 언어 구조이므로 함수가 아니므로 변수 함수로 호출할 수 없습니다.

참고:empty()는 변수만 감지하며, 변수가 아닌 것을 감지하면 구문 분석 오류가 발생합니다. 즉, 다음 문은 작동하지 않습니다: 비어 있음(addslashes($name)).
다음은 Script House에서 테스트한 isset 및 빈 함수의 자세한 예제 코드입니다. 읽어보면 기본적으로 동일합니다.

<?php 
error_reporting(E_ALL); 
echo &#39;<B>未定义$var</b><Br>&#39;; 
echo "isset测试:<Br>"; 
if ( isset ( $var )) 
{ 
echo &#39;变量$var存在!<Br>&#39; ; 
} 
echo "empty测试:<Br>"; 
if ( empty ( $var )){ 
echo &#39;变量$var的值为空<Br>&#39;; 
} 
else 
{ 
echo &#39;变量$var的值不为空<Br>&#39;; 
} 
echo "变量直接测试:<Br>"; 
if ( $var ){ 
echo &#39;变量$var存在!<Br>&#39;; 
} 
else { 
echo &#39;变量$var不存在!<Br>&#39;; 
} 
echo &#39;----------------------------------<br>&#39;; 
echo &#39;<B>$var = \&#39;\&#39;</b><Br>&#39;; 
echo "isset测试:<Br>"; 
$var = &#39;&#39;; 
if ( isset ( $var )) 
{ 
echo &#39;变量$var存在!<Br>&#39; ; 
} 
echo "empty测试:<Br>"; 
if ( empty ( $var )){ 
echo &#39;变量$var的值为空<Br>&#39;; 
} 
else 
{ 
echo &#39;变量$var的值不为空<Br>&#39;; 
} 
echo "变量直接测试:<Br>"; 
if ( $var ){ 
echo &#39;变量$var存在!<Br>&#39;; 
} 
else { 
echo &#39;变量$var不存在!<Br>&#39;; 
} 
echo &#39;----------------------------------<br>&#39;; 
echo &#39;<B>$var = 0</b><Br>&#39;; 
echo &#39;isset测试:<Br>&#39;; 
$var = 0 ; 
if ( isset ( $var )) 
{ 
echo &#39;变量$var存在!<Br>&#39; ; 
} 
echo "empty测试:<Br>"; 
if ( empty ( $var )){ 
echo &#39;变量$var的值为空<Br>&#39;; 
} 
else 
{ 
echo &#39;变量$var的值不为空<Br>&#39;; 
} 
echo "变量直接测试:<Br>"; 
if ( $var ){ 
echo &#39;变量$var存在!<Br>&#39;; 
} 
else { 
echo &#39;变量$var不存在!<Br>&#39;; 
} 
echo &#39;----------------------------------<br>&#39;; 
echo &#39;<B>$var = null</b><Br>&#39;; 
echo &#39;isset测试:<Br>&#39;; 
$var = null ; 
if ( isset ( $var )) 
{ 
echo &#39;变量$var存在!<Br>&#39; ; 
} 
echo "empty测试:<Br>"; 
if ( empty ( $var )){ 
echo &#39;变量$var的值为空<Br>&#39;; 
} 
else 
{ 
echo &#39;变量$var的值不为空<Br>&#39;; 
} 
echo "变量直接测试:<Br>"; 
if ( $var ){ 
echo &#39;变量$var存在!<Br>&#39;; 
} 
else { 
echo &#39;变量$var不存在!<Br>&#39;; 
} 
echo &#39;----------------------------------<br>&#39;; 

echo &#39;<B>$var ="php"</b><Br>&#39;; 
echo &#39;isset测试:<Br>&#39;; 
$var = "php"; 
if ( isset ( $var )) 
{ 
echo &#39;变量$var存在!<Br>&#39; ; 
} 

echo "empty测试:<Br>"; 
if ( empty ( $var )){ 
echo &#39;变量$var的值为空<Br>&#39;; 
} 
else 
{ 
echo &#39;变量$var的值不为空<Br>&#39;; 
} 
echo "变量直接测试:<Br>"; 
if ( $var ){ 
echo &#39;变量$var存在!<Br>&#39;; 
} 
else { 
echo &#39;变量$var不存在!<Br>&#39;; 
} 
?>
# 🎜🎜#PHP를 사용하여 페이지 프로그램을 작성할 때, PHP 페이지 끝에 있는 변수 값이 비어 있는지 확인하기 위해 변수 처리 함수를 자주 사용합니다. 처음에는 빈 값을 사용하는 데 익숙했습니다. () 함수를 사용했지만 몇 가지 문제를 발견했기 때문에 대신 isset() 함수를 사용하면 문제가 더 이상 존재하지 않습니다.

이름에서 알 수 있듯이 empty()는 변수가 "비어 있는지" 확인하고, isset()은 변수가 설정되었는지 확인합니다. 이것이 제가 처음에 약간 우회하게 만든 소위 "이름에서 알 수 있듯이"입니다. 변수 값이 0과 같을 때 empty()도 true(True)가 되므로 일부 사고가 발생할 수 있습니다. empty()와 isset()은 모두 변수 처리 함수이지만 둘 다 변수가 구성되었는지 여부를 결정하는 데 사용되지만 특정 차이점이 있습니다. 비어 있음은 변수가 비어 있는지 또는 0인지도 감지합니다. 변수 값이 0인 경우,empty()는 변수가 비어 있는 것으로 간주하며, 이는 설정되지 않은 것과 동일합니다.
예를 들어 $id=0일 때 $id 변수를 감지하려면 empty()와 isset()을 사용하여 $id 변수가 구성되었는지 감지하면 둘 다 감지됩니다. 다른 값을 반환합니다. - —empty()는 구성이 없다고 간주하고 isset()는 $id 값을 얻을 수 있습니다.

$id=0; 
empty($id)?print "It&#39;s empty .":print "It&#39;s $id ."; 
//结果:It&#39;s empty . 
print "<br>"; 
!isset($id)?print "It&#39;s empty .":print "It&#39;s $id ."; 
//结果:It&#39;s 0 .

이것은 우리가 변수 처리 기능을 사용하는 경우 변수 A의 값이 0이 될 수 있으므로, 이 경우에는 빈 값()을 사용하는 것이 더 합리적이므로 isset으로 대체하는 것이 좋습니다.

php 페이지의 URL tail 매개변수가 id=0(예: test.php?id=0)으로 표시되면 다음과 같이 비교해 보세요.

if(empty($id)) $id=1; - 若 id=0 ,id 也会为1 
if(!isset($id)) $id=1; - 若 id=0 ,id 不会为1
# 🎜🎜#
다음 코드를 별도로 실행하여 위의 추론을 감지할 수 있습니다.
if(empty($id)) $id=1; 
print $id; // 得到 1 
if(!isset($id)) $id=1; 
print $id; //得到 0

연결에 대해 이야기하자면 공통점은 비어 있습니다. () 및 isset() 모두 변수 처리 함수로서 변수가 구성되었는지 여부를 확인하는 기능입니다. 변수를 처리하는 과정에서 매우 유사하기 때문에 관계에 대한 이해가 부족합니다. 만약 빈()과 isset() 두 함수 자체만을 고려한다면, 사람들은 이를 다른 각도에서 더 혼란스러워하게 될 것입니다. empty()와 isset()의 처리 객체는 정의되지 않은 변수, 0, 빈 문자열에 지나지 않습니다.

변수가 0이면 비어 있음()은 TRUE를 반환하고 isset()은 TRUE를 반환합니다.


#🎜 🎜#

변수가 빈 문자열이면 empty()는 TRUE를 반환하고 isset()는 TRUE를 반환합니다.
변수가 정의되지 않으면 비어 있습니다. ( )는 TRUE를 반환하고 isset()은 FLASE를 반환합니다.

설명서의empty()에 대한 설명 다음과 같습니다:

Description bool 비어 있음( 혼합 var )
#🎜🎜 #var가 false인 경우 값이 비어 있거나 0이 아닌 경우, empty()는 FALSE를 반환합니다. 즉, "", 0, "0", NULL, FALSE, array(), var $var; 및 속성이 없는 개체는 비어 있는 것으로 간주되며 var가 비어 있으면 TRUE가 반환됩니다.
설명서의 isset()에 대한 설명은 다음과 같습니다.

# 🎜🎜# isset()은 변수가 설정되어 있는지 감지합니다.


Description bool isset ( 혼합 var [, 혼합 var [, ... ]] )


은 var가 존재하면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다.


변수가 unset()을 사용하여 해제된 경우 더 이상 isset()이 아닙니다. isset()을 사용하여 NULL로 설정된 변수를 테스트하면 FALSE를 반환합니다. 또한 NULL 바이트("?")는 PHP의 NULL 상수와 동일하지 않습니다.

경고: isset()은 변수에만 사용할 수 있습니다. 다른 매개변수를 전달하면 구문 분석 오류가 발생하기 때문입니다. 상수가 설정되었는지 확인하려면 Defined() 함수를 사용하면 됩니다.

변수가 선언되었는지 확인하고 싶을 때 isset 함수를 사용할 수 있습니다.

원할 때 변수가 할당되었는지 확인 데이터가 비어 있지 않으면 빈 함수를 사용하면 됩니다

변수가 존재하고 비어 있지 않은지 판단하려면 먼저 isset 함수를 사용한 다음 빈 함수를 사용하세요 # 🎜🎜#
관련 권장사항:

# 🎜🎜#PHP의 빈() 함수 및 isset() 함수

# 🎜🎜#PHP isset() 함수와 empty() 함수의 차이점_PHP 튜토리얼# 🎜🎜#

위 내용은 PHP에서 isset 함수와 빈 함수를 사용하는 것의 차이점은 무엇입니까? (포괄적인)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

관련 기사

더보기