Drupal 7传递函数作为参数触发警告

时间:2014-04-07 17:51:20

标签: php drupal-7

我在php中开发了一个身份功能

function identity($id){
  return $id;
}

在另一个函数中我需要将此身份函数作为参数传递,所以我做了

function poor_man_map($array, $map_fun){
   $return_val = array();
   foreach($array as $key=>$value){
      $return_val[$key] = $map_fun($value);
   }
   return $return_val;
}

function foo(){
  $ids = ['1','2','3'];
  return poor_man_map($ids, identity); //Warning generated

}

当我跑步时,我正在收到警告:

使用未定义的常量标识 - 假设'标识'

将函数foo更改为

function foo(){
          $ids = ['1','2','3'];
          return poor_man_map(
                   $ids, 
                   function($id){ 
                     return identity($id);
                   });         
  }

确实摆脱了警告,但它使代码变得更加麻烦。

这是我的第一个drupal / php项目。所以,我可能会遗漏一些非常明显的东西。你能告诉我我做错了什么吗?

我的环境是:   Drupal 7,   PHP 5.4.24   Windows 7

感谢。

1 个答案:

答案 0 :(得分:3)

您需要将参数作为字符串传递:

return poor_man_map($ids, 'identity');

顺便说一句,这与drupal无关,只是php。请参阅working example