2014-04-29 4 views
1

에 null를 건네? 똑같은 정보를 두 번 말해주는 것은 이상하게 보입니다.이 코드가 가변 기능

@edit

자신을 올바르게 표현했는지 알 수 없습니다. 이 함수는 사용할 탭을 알기위한 인수를 취합니다. 인수가 설정되지 않았거나 null 인 경우 '수정'해야합니다.

+2

는 지금, 기본 매개 변수는'edit', 그래서'$의 current'가 NULL''과 동일하지 않을 것입니다 . 간단히 기본 매개 변수를 대신 'NULL'로 변경하십시오. –

답변

2

아니요, null은 매개 변수로서 유효한 값입니다.

function basket_admin_tabs($current = 'edit') { 
    $current = $current ? $current : 'edit'; 
} 

// after php 5.3 
function basket_admin_tabs($current = 'edit') { 
    $current = $current ?: 'edit'; 
} 
+2

그래도 기본값을 복제해야하는 것은 이상한 일입니다. – raina77ow

+0

... 그러나 다시, 우리는 적어도 함수 시그니처 (IDE에서)에서 실제 디폴트 값을 보았습니다. 'null-isset' 방식을 사용하면 함수의 몸체에 숨겨집니다. – raina77ow

1

이 충분 : falsy 아래와 같은 경우

당신은 기본 값을 설정할 수 있습니다.

/** 
* defaults to 'edit' 
* 
* @param null $current 
*/ 
function basket_admin_tasks($current = null) 
{ 
    $current = ($current == null ? 'edit' : $current); 
} 

또는이 : 당신이`NULL`으로 함수 인수를 지정하지 않는

/** 
* @var string 
*/ 
private $current = 'edit'; 

/** 
* @param $current 
*/ 
public function basket_admin_tasks($current) 
{ 
    $this->current = $current; 
}