Function 替换不推荐的create_函数方法

Function 替换不推荐的create_函数方法,function,str-replace,Function,Str Replace,我正在更新一个废弃的插件,我遇到了这个不推荐使用的函数,我正在努力寻找一个合适的替代品。最初的功能是: $callback=create_函数(''echo'.str_replace(''','\',$section['desc'])。“;”) 我提出的替代方案如下: $callback=function(){echo''.str_replace('''','\'',$section['desc'])。“;”;} 但是,由于`$section['desc']变量是在此函数之外定义的,因此该操作失

我正在更新一个废弃的插件,我遇到了这个不推荐使用的函数,我正在努力寻找一个合适的替代品。最初的功能是:

$callback=create_函数(''echo'.str_replace(''','\',$section['desc'])。“;”)

我提出的替代方案如下:

$callback=function(){echo''.str_replace('''','\'',$section['desc'])。“;”;}

但是,由于`$section['desc']变量是在此函数之外定义的,因此该操作失败,因此给出了一个未定义的变量错误

我尝试了多种不同的方法将变量传递到函数中,但我最近的努力失败了,输出显示(数组)而不是所需的描述:

$section_desc=$section['desc'];
$callback=function($section\u desc){echo''.str\u replace('''','\'',$section\u desc)。'';'}


寻找正确方法的建议吗?

我无法测试,因为我正在使用手机,但我认为这是正确的

$section_desc = $section['desc'];
$callback = function($section_desc) {
  return str_replace('"', '\"', $section_desc);
}

不执行
$section['desc']是否正常包含数组?您是否尝试过打印($section['desc'])
检查输出数组中的内容?这是$section['desc']的要点:`$section['desc']=uuu('description','plugin_textdomain');那么它是一个2项数组?printr按预期返回描述文本,这会产生无效的回调错误,它不是传递一个显示文本的函数,而是传递文本。这不会引发任何错误,但也不会打印文本。这有点奇怪,我在函数外部执行了$selection_desc的var_转储,它返回了文本字符串,但是在函数内部执行$selection_desc的var_转储会返回整个选择数组,这就是为什么它在尝试回显变量时抛出数组错误的原因。可以尝试
$selection_desc['desc']
$selection_desc[0]
如果在
['desc']
下不再找到它,而不是在函数中传递它,那么我将变量作为全局变量传递,这样就有效了。