2012-11-15 7 views
0

가능한 중복 : 다음과 같은 상황 !== null, !is_null()isset() 모두 같은 결과 생산에서
is_null($x) vs $x === null in PHP는 확인

:

$foo = null; 

function foo() { 
    if ($this->foo !== null) { 
     ... 
    } 
    if (!is_null($this->foo)) { 
     ... 
    } 
    if (isset($this->foo)) { 
     ... 
    } 
} 

을 어느 하나는 가장 빠릅니다. 그 맥락에서 칭찬 해 주시겠습니까?

+0

당신은 변수는 isset()을 사용할 수 없습니다 http 요청, 게시 또는 얻을에만 – Rob

+3

@ Robuust 무엇? 물론 모든 변수에 사용할 수 있습니다. '$ a = 5; if (isset ($ a)) {echo "a = {$ a}"; }' – Corbin

+1

가장 빠른 것에 대해서는 [php.net에 대한 의견] (http://www.php.net/manual/en/function.is-null.php#83588)에는 루핑하는 각 메소드에 대한 벤치 마크가 포함되어 있습니다 10M 반복 이상. – Beardy

답변

2

변수가 있는지 잘 모르겠 으면 isset을 사용하십시오.

예 :

$content = (isset($_POST['content'])) ? $_POST['content'] : null; 

그렇지 않으면, null로 엄격한 비교를 사용합니다.

if ($content === null) { } 

(정말, 난 그냥 그냥 is_null보다 더 보이는 것 같아요. 엄격한 비교하여 내 의견을 추진하고있어, 그것은 아마 매우 작은 비트 빠릅니다.)

1

으로 설정할 수없는 경우에만 isset을 사용하십시오. 나는. 이 시점에서 변수가 존재하는지 여부를 모르는 경우 이 시점에 있어야한다는 것을 알고 있으므로 isset을 사용하지 마십시오.

!== null!is_null의 차이는 무시할 수 있으며 대부분 사용자의 취향에 따라 다릅니다. 개인적으로 나는 !== null을 좋아합니다.

0
if ($this->foo !== null) { 
     //... 
} 

나는이 조건을 선호한다. 나에 따르면

+0

수정 해 주셔서 감사합니다. –

0

if($this->foo!=""){ 

// ... }

이 가장 빠른 하나이며 결과를 신속하게

PHP5에서