PHP数组\映射回调函数内部函数
我有一个名为PHP数组\映射回调函数内部函数,php,arrays,array-map,Php,Arrays,Array Map,我有一个名为createCost的函数,在该函数中,我有一个接受数组的array\u map,还有一个名为checkDescription的函数,它位于createCost的内部。以下是一个例子: public function createCost{ $cost_example = array(); function checkDescription($array_item) { return $array_item; } $array_mapped = arr
createCost
的函数,在该函数中,我有一个接受数组的array\u map
,还有一个名为checkDescription
的函数,它位于createCost
的内部。以下是一个例子:
public function createCost{
$cost_example = array();
function checkDescription($array_item)
{
return $array_item;
}
$array_mapped = array_map('checkDescription', $cost_example);
}
当我运行这个时,我得到一个
array_map() expects parameter 1 to be a valid callback, function 'checkDescription' not found or invalid function name
据我所知,它在createCost
之外查找函数checkDescription
,但如何从内部调用checkDescription
你喜欢这样吗
public function createCost(){
$cost_example = array();
$array_mapped = array_map(function ($array_item){
return $array_item;
}, $cost_example);
}
为什么不把函数赋给一个变量呢
public function createCost{
$cost_example = array();
$checkDescription = function ($array_item) {
return $array_item;
}
$array_mapped = array_map($checkDescription, $cost_example);
}
这难道不是更具可读性吗?应该可以,但以后会因为其他原因而失败…一个简单的匿名函数怎么样…?嵌套函数!?!这是不明智的,通常会被误解,因为函数从来都不是真正的“嵌套的”。。。但是您的类是否具有名称空间,例如?@deceze并不是真的,因为我对Array_Map的理解是,它查找存在于Map之外的函数……不确定您的意思,但它工作得很好:@deceze不必担心。。。。因为下面的答案,所以都被分类了