Php 如何在子函数中使用函数变量
所以我有以下功能:(这应该是一个最新版本) 但这会导致一个错误Php 如何在子函数中使用函数变量,php,Php,所以我有以下功能:(这应该是一个最新版本) 但这会导致一个错误 Notice: Undefined variable: searchString in.... Notice: Undefined variable: type in.... 问题:为什么我不能在该子功能中使用变量 我尝试过的: .... $latests = array_reduce($versions, function ($latest, $folder) { echo $latest, $folder; i
Notice: Undefined variable: searchString in....
Notice: Undefined variable: type in....
问题:为什么我不能在该子功能中使用变量
我尝试过的:
....
$latests = array_reduce($versions, function ($latest, $folder) {
echo $latest, $folder;
if (!$latest) {
return $folder;
}
global $searchString, $type; //but the variables are empty
$latestNum = preg_replace('!^' . substr($searchString[$type],0,-1) . '!', '', $latest);
$folderNum = preg_replace('!^' . substr($searchString[$type],0,-1) . '!', '', $folder);
return version_compare($latestNum, $folderNum, '>') ? $latest : $folder;
});
....
很简单:
function ($latest, $folder) use ($searchString, $type) {
要使用父范围中的变量,请使用
use
;) $searchString
在哪里定义?您看不到吗?我声明一个数组。。。这个很好用。。。但是在array\u reduce回调中,他们丢失了array\u reduce()
的使用有点过分;一个普通的循环会更有逻辑。
function ($latest, $folder) use ($searchString, $type) {