【发布时间】:2011-05-03 02:53:39
【问题描述】:
是否可以在 PHP 的 switch 语句中动态生成 cases,如 hook_mail() 的示例所示?
/*
* Implement hook_mail().
*/
function rsvp_mail($key, &$message, $params) {
$guests = rsvp_query();
foreach ($guests as $account) {
switch($key) {
case "invite $account->uid" :
$message['subject'] = "And invitation for $account->name";
$message['body'][] = 'Some body text.';
$message['body'][] = rsvp_get_link($account);
break;
}
}
}
【问题讨论】:
-
你能澄清一下吗?一般来说,这看起来像是对 hook_mail 的滥用。请解释您要完成的工作,以及为什么将其放入 hook_mail。 hook_mail 用于填充/修改电子邮件。不过,还有很多其他入口点可以启动邮件流程。
-
@David Fells:这个比较全面:stackoverflow.com/questions/5862170/…
-
你可能会失去开关,只问是 (strpos($key, 'invite ') == 0),还是 (preg_match('!invite \d+!', $key))
标签: drupal drupal-7 drupal-hooks