코딩할 때 변수가 비어 있지 않은지 판단하여 혼동하는 경우가 많습니다.
방법 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의 판단 결과입니다. 비어 있으면 문서를 참고하세요.