_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
_コールバックのページ引数は1つだけです。 menufun_hello()
に2つのパラメーターがあるのはなぜですか?
メニューコールバックには、最初にpage arguments
で定義された引数が渡され、次にURLから余分な引数が渡されます。
したがって、上記の例では:
menufun/1/bar/baz
これらの変数を提供します:
$a = 1;
$b = NULL;
ただし、URLに追加の引数を指定した場合:
menufun/1/bar/baz/2
これをメニューコールバックに転送します。
$a = 1;
$b = 2;
もう1つの利点はtimによる書き込みと同様で、さまざまなケースで同じコードを再利用できるため、モジュールの保守が容易になります。
この場合、menufun_hello()
は最大2つの引数を取りますが、デフォルトを提供するので、ゼロにすぎません。つまり、menufun_menu()
は後で別の引数を渡すことができ、関数のシグネチャを変更する必要はありません。