it-swarm-ko.tech

페이지 콜백에 두 개의 인수가있는 이유는 무엇입니까?

function menufun_menu() {
  $items['menufun/%/bar/baz'] = array(
    'title' => 'Hi',
    'page callback' => 'menufun_hello',
    'page arguments' => array(1), // The matched wildcard.
    'access callback' => TRUE,
  );

  return $items;
}

/**
* Page callback.
*/
function menufun_hello($a = NULL, $b = NULL) {
  return t('Hello. $a is @a and $b is @b', array('@a' => $a, '@b' => $b));
}

menufun_menu() 함수에서 menufun_hello 콜백의 페이지 인수는 하나입니다. 왜 menufun_hello()에 두 개의 매개 변수가 있습니까?

5
enjoylife

메뉴 콜백은 먼저 page arguments 그런 다음 URL에서 과도한 인수입니다.

위의 예에서 :

menufun/1/bar/baz

다음과 같은 변수를 제공합니다.

$a = 1;
$b = NULL;

그러나 URL에 추가 인수를 제공하는 경우 :

menufun/1/bar/baz/2

메뉴 콜백으로 전송합니다.

$a = 1;
$b = 2;

다른 장점은 팀 쓰기와 유사하므로 다양한 경우에 동일한 코드를 재사용 할 수있어 모듈의 유지 관리가 용이합니다.

7
googletorp

이 경우, menufun_hello()은 기본값을 제공하므로 최대 두 개의 인수를 취하지 만 0은 적습니다. 이것은 menufun_menu()이 나중에 다른 인수를 전달할 수 있고 함수 서명을 변경할 필요가 없음을 의미합니다.

1
tim.plunkett