PHP에서 if($args)와 if(!empty($args))의 차이점

WBOY
풀어 주다: 2023-03-02 14:06:02
원래의
1922명이 탐색했습니다.

코딩할 때 변수가 비어 있지 않은지 판단하여 혼동하는 경우가 많습니다.
방법 1: if($args){...do Something..}
방법 2: if(!empty($ args)) {...뭔가를 해보세요...}

두 가지 방법이 동일한 효과를 발휘하나요? 실행 효율성 측면에서 어떤 방법이 더 좋나요?
답변 감사합니다!

답글 내용:

코딩할 때 변수가 비어 있지 않은지 판단하여 혼동하는 경우가 많습니다.
방법 1: if($args){...do Something..}
방법 2: if(!empty($ args)) {...뭔가를 해보세요...}

두 가지 방법이 동일한 효과를 발휘하나요? 실행 효율성 측면에서 어떤 방법이 더 좋나요?
답변 감사합니다!

동일하지 않습니다. $args == 0이면 $args == false

대부분의 경우!empty는 오류를 보고하지 않고 매개변수로 설정되지 않은 변수를 사용할 수 있는 경우에 더 안전합니다.

<code class="php">if($args[2] == 1) {}</code>
로그인 후 복사

요소 2가 배열에 없으면 오류가 보고됩니다. 이렇게 써야 합니다

<code class="php">if(!empty($args[2]) && $args[2] == 1) {}</code>
로그인 후 복사

첫 번째 방법은 $args이 정의되지 않은 경우 경고를 발생시킵니다. PHP의 모든 오류는 주로 PHP의 오류 처리 메커니즘으로 인해 상당한 성능 저하를 초래합니다.

두 번째 방법empty은 정의되지 않은 매개변수를 처리하고 경고를 방지할 수 있습니다. 또한, empty은 함수라기보다는 명령이므로, 첫 번째 방법에 비해 동작 효율이 크게 떨어지지는 않습니다.

간단히 말하면 $args이 정의되었는지 확인할 수 있다면 첫 번째 방법을 사용할 수 있습니다. 그렇지 않은 경우 두 번째 옵션을 사용하는 것이 좋습니다.

  • 방법 1: 유형 변환이 포함됩니다.

  • 방법 2: 비어 있으면 비어 있지 않은 값을 결정하고, 비어 있는 값에는

  • 이 포함됩니다.
<code>int 0
float 0.0
string '0'
string ''
array array()
boolean false
NULL
$var(一个定义了但为空值的变量)</code>
로그인 후 복사

핵심은 if()와empty()의 판단에 있습니다.
작성된 로그를 복사하세요. 단, 다음의 경우에만 해당됩니다.

<code>布尔值FALSE身.
整形值0.
浮点类型0.0
空字符串'',以及字符串'0';//这里是重点
不包含任何元素的数组.
不包含任何成员的对象.(仅php 4.0)
特殊类型NULL
其他任何类型的数据都被默认为TRUE(包括资源类型)
-1也为TRUE(无论正负)</code>
로그인 후 복사

if의 판단 결과입니다. 비어 있으면 문서를 참고하세요.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!