类方法中使用array_map报错--- cannot redeclare
方法定义如下:
class maaper{
......
public function getproperties(){
function getname($reflectionproperties){
return $reflectionproperties->name;
}
$domain=$this->get_domain();
$reflectionproperties=$domain->getproperties(reflectionproperty::is_public);
$properties=array_map('getname', $reflectionproperties);
return $properties;
}
......
}
调用过程如下(注:$mapper_1、$mapper_2是在同一次运行时调用方法):
$mapper_1=new mapper();
$mapper_2=new mapper();
var_dump($mapper_1->getproperties()); //正确返回
var_dump($mapper_2->getproperties()); //报错 cannot redeclare getname()
截图如下:
分享到:
------解决方案--------------------
function getname($reflectionproperties){
return $reflectionproperties->name;
}
无论在哪里都是定义全局函数