>  기사  >  백엔드 개발  >  isset 함수와 빈 함수의 차이점을 명확히 하기 위한 그림

isset 함수와 빈 함수의 차이점을 명확히 하기 위한 그림

不言
不言원래의
2018-07-06 15:50:453944검색

이 글은 isset과empty함수의 차이점을 명확히 하기 위해 주로 그림을 소개합니다. 이제 특정 참조 값이 있습니다. 도움이 필요한 친구들이 참고할 수 있습니다. ?

면접을 하다가 면접관이 우연히 이런 질문을 하게 된다면. 다음과 같이 대답할 수 있습니다.

  • 변수 값이 0, 빈 문자열, 빈 배열 등인 경우,empty는 비어 있다고 생각하고, isset은 비어 있지 않다고 생각합니다.

  • 변수가 존재하지 않으면 isset과 empty 모두 비어 있는 것으로 간주합니다.

  • empty 사용 시 함정을 피하기 위해 isset 기능을 사용하는 것이 좋습니다.

  • 더 자세한 차이점을 알고 싶으시다면 계속 읽어주세요...

완전히 명확하게 하기 위한 그림 한 장

ProcessOn으로 그림을 그렸습니다

Attention

:

    For 비교의 편의상 여기서는 빈 함수가 반전됩니다. !empty()
  • !empty()

  • ""、0、"0"、FALSE、array()...该条件没有补全,可以自行测试

  • 如果你看上去一头雾水,请先暂时跳过这一小节

isset 함수와 빈 함수의 차이점을 명확히 하기 위한 그림

这就是isset empty对应不同变量时的返回结果,两者的区别都汇聚在这张图片中了。

绿色虚线框里isset的表现,黄色虚线框里是!empty

"", 0, "0", FALSE, array()... 이 조건은 완료되지 않았습니다. 직접 테스트할 수 있습니다

혼란스러우시다면 지금은 이 섹션을 건너뛰시기 바랍니다

  • isset 함수와 빈 함수의 차이점을 명확히 하기 위한 그림
  • 이것은 issetempty가 다른 변수에 해당하는 경우의 반환 결과입니다. 그들 사이의 차이점은 모두 이 그림에 집중되어 있습니다.

    녹색 점선 상자의 isset 성능과 노란색 점선 상자의 !empty 성능입니다. 반환 결과를 결정하려면 비어 있는 경우 isset보다 더 많은 조건을 판단해야 함을 알 수 있습니다.
  • 뭔가 이해가 안 되거나 모든 세부 사항이 기억나지 않는 경우. 이 사진의 모든 것을 기억하는 방법을 알려드리겠습니다!

    생수에 대한 생각
  • 지금 테이블 위에 생수병이 있다고 상상해보세요. 병에는 다음 4가지 조건이 있을 수 있습니다.

물병: 병 안에 물이 있습니다.

    공기 병: 물이 다 마르고 병 안에 공기만 있습니다.
  • 진공 병: 병 가져가서 진공청소하면 내부는 아무것도 없습니다
  • 데스크탑에 병이 없습니다
  • 변수는 생수병에 비유되며 4가지 상태에 해당됩니다.

일반값: 있음 저장 장치의 일반 값입니다

Air 값: 변수는 "", 0, "0", FALSE, array()...
  • Vacuum 값: 변수는 NULL
  • 변수가 존재하지 않거나 정의되지 않았습니다
  • 초등학생은 비어 있고 중학생은 isset입니다.
생수병이 비어 있는지 확인하기 위해 issetempty 함수를 사용할 수 있다고 가정해 보겠습니다. :

공기병이면 비어 있으면 비어 있다고 생각하지만(정말 비어 있는 것처럼 보입니다!), isset은 비어 있지 않다고 생각합니다(공기가 있습니다!)

진공병이라면 , 그러면 빈 isset은 비어 있다고 생각할 것입니다

  • 물병이라면 빈 isset은 비어 있다고 생각할 것입니다. 비어 있지 않습니다

  • 비어 있음은 과학을 이해하지 못하는 초등학생임을 알 수 있습니다 . 그는 병이 비어 보이면 비어 있다고 생각합니다! 물론 아직 너무 어리죠~
  • 그리고 이세트는 물리학을 공부해

    "진공"의 개념을 이해하고 있는 중학생입니다. 그는 병 속에 아직 공기가 있다는 것을 알고 있습니다!

    그래서 위의 세 가지 상황 중 첫 번째 상황에서 숙련된 운전자 이세트는 풍부한 경험을 가지고 있으며 초등학생 빈과 다른 결론에 도달했습니다.
  • 이제 이 두 함수를 사용하여 변수를 판단하면 결과는 다음과 같다는 것을 알 수 있습니다.

공기 값("", 0, "0", FALSE, array( )... ), 비어 있으면 비어 있다고 생각하고, isset은 비어 있지 않다고 생각합니다. 진공 값(NULL)이면 비어 있음 isset은 비어 있다고 생각합니다. , 병에 물이 있습니다) 그러면 비어 있는 이셋은 비어 있지 않다고 생각합니다

처음에 주어진 인터뷰 답변입니다. 자, 이해가 쉽나요?

상세 비교

isset() 함수

형식: bool isset (mixed var [, Mixed var [, ...]] )

함수: 변수가 설정되었는지 감지

반환 값:
변수가 존재하지 않는 경우 FALSE를 반환합니다.

변수가 존재하고 그 값이 NULL이면 FALSE를 반환합니다.
변수가 존재하고 그 값이 NULL이 아니면 TRUE를 반환합니다.
여러 변수를 동시에 검사하면 TRUE가 됩니다. 각 단일 항목이 이전 요구 사항을 충족하는 경우에만 반환됩니다. 그렇지 않으면 결과는 FALSE입니다. 추가 설명:
unset()을 사용하여 변수를 해제하면 더 이상 isset()이 아닙니다.

PHP 함수 isset()

은 변수

에만 사용할 수 있으며, 다른 매개변수를 전달하면 구문 분석 오류가 발생합니다.

상수가 설정되었는지 확인하려면 정의된() 함수를 사용하세요.

🎜empty() 함수🎜🎜형식: bool 비어 있음(혼합 var)🎜

함수: 변수가 비어 있는지 확인

반환값:

변수가 없으면 TRUE를 반환합니다.
변수가 존재하고 해당 변수가 값이 " ", 0, "0", NULL, FALSE, array(), var $var 및 속성이 없는 객체인 경우 TURE를 반환합니다
변수가 존재하고 값이 "", 0, "0이 아닌 경우 ", NULL , FALSE, array(), var $var 및 속성이 없는 개체, return FALSE

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

가장 완전한 차이

이제 생수와 변수를 함께 넣어 가장 완전한 차이 그림을 그려보겠습니다:

If you can If you can 이전 내용을 읽어보시면 이 두 사진을 완벽하게 이해하실 수 있을 것이며, 이제부터 issetempty의 차이점이 마음속에 각인될 것입니다. 그래도 누가 둘의 차이점을 묻는다면 바로 이 사진을 버려주세요~

isset 함수와 빈 함수의 차이점을 명확히 하기 위한 그림

#🎜 🎜#isset 함수와 빈 함수의 차이점을 명확히 하기 위한 그림

관심이 있으시면 공식 매뉴얼에 있는 예제를 읽어보세요...

PHP 매뉴얼

#🎜 🎜#

isset 함수와 빈 함수의 차이점을 명확히 하기 위한 그림이것은 테이블에서 찾을 수 있는 빈 isset if($var)를 구별하는 테이블입니다.

# 🎜🎜## 🎜🎜#

isset() 반환 값은 !is_null()

  • empty() 반환 값과 동일 !boolean($x)으로. if($x)는 실제로 변수를 부울 유형으로 먼저 변환한 다음 조건부 판단을 수행합니다

  • $var가 존재하지 않는 경우 if($x) 문은 PHP에서 E_NOTICE 수준 예외를 발생시킵니다. , 그러나 치명적이지는 않습니다. 오류, 스크립트는 계속 실행될 수 있습니다.
  • empty($x) 및 isset($x)는 예외를 보고하지 않습니다

    #🎜 🎜#

    위 글이 여러분의 공부에 도움이 되었으면 좋겠습니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!

    관련 권장 사항:

Centos 루프 테스트 Redis 및 공유 메모리(shm) 읽기 및 쓰기에서 PHP의 효율성

#🎜 🎜 #

위 내용은 isset 함수와 빈 함수의 차이점을 명확히 하기 위한 그림의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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