2013-03-23 2 views
0

내가 코드와 같은 조각이 있습니다세 가지 상태 (null, false, true) 값을 확인하는 방법은 무엇입니까?

public function setValue($flag) { 
    $this->value = isset($flag) ? (bool) $flag : null; 
} 

나는 가정이 $ 플래그가 나타낼 수를 하나 널 (null), 또는 허위 또는 사실. (나는 타입 캐스팅을 할 이유는 그냥 유형에 대해 관심이 있다는 것입니다.)

편집 : $ 플래그가 다음 $ this-, null의

  • 경우> 값이
  • 널 : 이 내 목표
  • (bool) $ flag가 false이면 $ this-> value는 false입니다.
  • (bool) $ flag가 true이면 $ this-> value가 true입니다.

이것은 내 코드에서 말하는 것입니다. 그리고 내가 궁금해하는 것은, 내가 목표를 달성하기 위해 좋은 방법을 제출했는지 아니면 더 나은 (더 단순하고 더 우아한) 코드일까요?

+0

왜'$ flags'가 설정되지 않습니까? – Tchoupi

+2

$ flag가 나중에 함수가 아닌 매개 변수로 사용되기 전에 설정되어 있는지 확인하는 것이 좋습니다. – Jonast92

답변

1

편집

으로 확인하고 코드가 다음 작동하는지 그런 식으로 편리하고 깔끔한 당신이 이미 그것을하고있는 방법으로 일을 계속해야한다. 유일한 것은 먼저 isset을 확인하는 것입니다.

$this->value = null; 
if(isset($flag)) { 
    setValue($flag); 
} 

public function setValue($flag) { 
    $this->value = (bool) $flag 
} 
+1

당신은 당신의 대답을 조금 더 살피셔야합니다. – joce

+0

@ jacek.ciach 나는 대답을 –

+0

@ 에반 업데이트했습니다. 나는 당신에게 동의합니다. 그러나 당신은 코드가 코드가하는 것과 똑같은 것을 알아 차려야 만한다. 그러나 내 코드는 더 짧다;) bool에 $ flag를 타입 변환하는 것은 비어있는 ($ flag) 것과 같지 않은가? –

0

issetNULL 인 경우 false을 반환합니다. 또한 내가 당신의 편집을 읽을 is_null

+0

나는 그것을 알 것이다. 그리고 $ this-> 값은 null입니다. 그래서 내가 원하는대로 작동합니다. –

관련 문제