>  기사  >  백엔드 개발  >  PHP isset과 공백의 차이점에 대한 자세한 설명

PHP isset과 공백의 차이점에 대한 자세한 설명

WBOY
WBOY원래의
2016-08-08 09:23:43992검색

PHP의 isset() 함수는 일반적으로 변수가 설정되었는지 감지하는 데 사용됩니다.
형식: bool isset (mixed var [, mix var [, ...]])
함수: 변수가 설정되었는지 감지합니다. set
반환 값:
변수가 존재하지 않으면 FALSE를 반환합니다.
변수가 존재하고 그 값이 NULL이면 FALSE를 반환합니다.
변수가 존재하고 그 값이 NULL이 아닌 경우 , TRUE를 반환합니다.
동시에 여러 항목을 확인하면 각 단일 항목이 이전 요구 사항을 충족하는 경우에만 TRUE가 반환됩니다. 그렇지 않으면 결과는 FALSE가 됩니다.
버전: PHP 3, PHP 4, PHP 5
추가 지침:
unset()을 사용하여 변수를 해제한 후에는 더 이상 isset()이 아닙니다.
PHP 함수 isset()은 변수에만 사용할 수 있습니다. 다른 매개변수를 전달하면 구문 분석 오류가 발생합니다.
상수가 설정되었는지 확인하려면 정의된() 함수를 사용하세요.
PHP의 empty() 함수는 값이 비어 있는지 확인
형식: bool 비어 있음(혼합 var)
기능: 변수가 비어 있는지 확인
반환 값:
변수가 비어 있지 않은 경우 존재 TRUE를 반환합니다
변수가 존재하고 해당 값이 "", 0, "0", NULL, FALSE, array(), var $var이고 속성이 없는 개체인 경우 TRUE를 반환합니다.
변수가 존재하고 값이 "", 0, "0", NULL,, FALSE, array(), var $var 및 속성이 없는 개체인 경우 FALSE를 반환합니다.
버전: PHP 3, PHP 4, PHP 5
추가 설명:
empty() =!(boolean) var의 반환 값이지만 변수가 정의되지 않았기 때문에 경고 메시지가 생성되지 않습니다. 자세한 내용은 부울로 변환을 참조하세요.
empty()는 변수에만 사용할 수 있습니다. 다른 매개변수를 전달하면 Paser 오류가 발생하고 작업이 종료됩니다.
상수가 설정되었는지 확인하려면 정의된() 함수를 사용하세요.
예:empty()와 isset()의 단순 비교

<?<span>php 
</span><span>$var</span> = 0<span>; 
</span><span>//</span><span> 结果为 true,因为 $var 为空 </span><span>if</span> (<span>empty</span>(<span>$var</span><span>)) { 
</span><span>echo</span> '$var is either 0 or not set at all'<span>; 
} 
</span><span>//</span><span> 结果为 false,因为 $var 已设置 </span><span>if</span> (!<span>isset</span>(<span>$var</span><span>)) { 
</span><span>echo</span> '$var is not set at all'<span>; 
} 
</span>?> 

참고: 함수가 아닌 언어 구조이므로 변수로 호출할 수 없습니다. 기능.
참고:empty()는 변수만 감지하며, 변수가 아닌 것을 감지하면 구문 분석 오류가 발생합니다. 즉, 다음 문은 작동하지 않습니다: 비어 있음(addslashes($name)).

다음은 isset 및 빈 함수의 자세한 예를 테스트한 코드입니다. 이 내용을 읽고 나면 기본적으로 동일합니다.

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

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

</span><span>echo</span> "empty测试:<Br>"<span>; 
</span><span>if</span> ( <span>empty</span> ( <span>$var</span><span> )){ 
</span><span>echo</span> '变量$var的值为空<Br>'<span>; 
} 
</span><span>else</span><span>
{ 
</span><span>echo</span> '变量$var的值不为空<Br>'<span>; 
} 
</span><span>echo</span> "变量直接测试:<Br>"<span>; 
</span><span>if</span> ( <span>$var</span><span> ){ 
</span><span>echo</span> '变量$var存在!<Br>'<span>; 
} 
</span><span>else</span><span> { 
</span><span>echo</span> '变量$var不存在!<Br>'<span>; 
} 
</span>?>

php를 사용하여 페이지 작성 프로그래밍을 하다 보면 PHP 페이지 마지막에 있는 변수 값이 비어 있는지 확인하기 위해 변수 처리 함수를 자주 사용하는데, 처음에는 empty() 함수를 사용하는데 익숙해서 몇 가지 문제점을 발견했습니다. isset() 함수로 전환하면 더 이상 문제가 발생하지 않습니다.
이름에서 알 수 있듯이 empty()는 변수가 "비어 있는지" 확인하고, isset()은 변수가 설정되었는지 확인합니다. 이것이 제가 처음에 약간 우회하게 만든 소위 "이름에서 알 수 있듯이"입니다. 변수 값이 0과 같을 때 empty()도 true(True)가 되므로 일부 사고가 발생할 수 있습니다. empty()와 isset()은 모두 변수 처리 함수이지만 둘 다 변수가 구성되었는지 여부를 결정하는 데 사용되지만 특정 차이점이 있습니다. 비어 있음은 변수가 비어 있는지 또는 0인지도 감지합니다. 변수 값이 0이면,empty()는 변수가 비어 있는 것으로 간주하며, 이는 설정되지 않은 것과 동일합니다.
예를 들어 $id 변수를 감지하려면 $id=0인 경우 empty() 및 isset()을 사용하여 $id 변수가 구성되었는지 여부를 감지합니다. 둘 다 서로 다른 값을 반환합니다. -empty()는 고려합니다. 구성되지 않은 경우 isset()은 $id 값을 가져올 수 있습니다.

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

이는 변수 처리 기능을 사용할 때 변수의 값이 0일 수 있음을 의미합니다. , 주의하세요. 이때는 isset으로 바꾸는 것이 현명합니다.
PHP 페이지의 URL tail 매개변수가 id=0(예: test.php?id=0)으로 나타나면 다음과 같이 비교해 보세요.

<span>if</span>(<span>empty</span>(<span>$id</span>)) <span>$id</span>=1; - 若 id=0<span> ,id 也会为1 
</span><span>if</span>(!<span>isset</span>(<span>$id</span>)) <span>$id</span>=1; - 若 id=0 ,id 不会为1 

다음과 같이 별도로 실행합니다. 코드는 위의 추론을 감지합니다.

<span>if</span>(<span>empty</span>(<span>$id</span>)) <span>$id</span>=1<span>; 
</span><span>print</span><span>$id</span>; <span>//</span><span> 得到 1 </span><span>if</span>(!<span>isset</span>(<span>$id</span>)) <span>$id</span>=1<span>; 
</span><span>print</span><span>$id</span>; <span>//</span><span>得到 0 </span>


그들의 연결에 대해 이야기하자면, 이들의 공통점은 empty()와 isset()이 모두 변수 처리 함수라는 것입니다. 그들의 기능은 변수가 구성되었는지 여부를 결정하는 것입니다. 변수를 처리하는 과정에서 역할이 유사하기 때문에 관계에 대한 이해가 부족합니다. 만약 빈()과 isset() 두 함수 자체만을 고려한다면, 사람들은 이를 다른 각도에서 더 혼란스러워하게 될 것입니다. empty()와 isset()의 처리 객체는 정의되지 않은 변수, 0, 빈 문자열에 지나지 않습니다.
변수가 0이면 공백()은 TRUE를 반환하고, isset()은 TRUE를 반환합니다.
변수가 빈 문자열이면 공백()은 TRUE를 반환하고, isset()은 TRUE를 반환합니다. >변수가 정의되지 않은 경우, empty()는 TRUE를 반환하고 isset()은 FLASE를 반환합니다.
매뉴얼의 empty()에 대한 설명은 다음과 같습니다.
Description boolempty(mixed var)
var가 비어 있지 않거나 0이 아닌 값인 경우, empty()는 FALSE를 반환합니다. 즉, "", 0, "0", NULL, FALSE, array(), var $var; 및 속성이 없는 개체는 비어 있는 것으로 간주되며 var가 비어 있으면 TRUE가 반환됩니다.
매뉴얼의 isset() 설명은 다음과 같습니다.
isset()은 변수 설정 여부를 감지합니다.
설명 bool isset (mixed var [, mix var [, ...]] )
var가 존재하면 TRUE를 반환하고, 그렇지 않으면 FALSE를 반환합니다.
unset()을 사용하여 변수가 해제된 경우 더 이상 isset()이 아닙니다. isset()을 사용하여 NULL로 설정된 변수를 테스트하면 FALSE를 반환합니다. 또한 NULL 바이트("?")는 PHP의 NULL 상수와 동일하지 않습니다.
경고: isset()은 변수에만 사용할 수 있습니다. 다른 매개변수를 전달하면 구문 분석 오류가 발생하기 때문입니다. 상수가 설정되었는지 확인하려면 Defined() 함수를 사용하면 됩니다.

변수가 선언되었는지 확인하려면 isset 함수를 사용하면 됩니다. 변수에 데이터가 할당되어 있고 비어 있지 않은지 확인하려면 다음을 수행하세요. 빈 함수를 사용하세요.
변수에 데이터가 할당되어 있고 비어 있지 않은지 확인하려면 변수가 존재하고 비어 있지 않은 경우 먼저 isset 함수를 사용한 다음 빈 함수를 사용하면 됩니다. 빈 함수

위에는 PHP isset과 공백의 차이점에 대한 자세한 설명이 관련 측면을 포함하여 소개되어 있어 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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