0

嘿伙计们,我以某种方式搞砸了我的 Lambda,似乎我的匿名函数没有从上面获取变量,

进入的一些变量是

print_r($cacheTypes); 
print_r($servers); 

Array
(
    [concreter] => on
    [config] => on
)
Array
(
    [0] => dev-www.domain.com
)

功能是

$urls = array_walk($servers, 
    create_function('&$n', 
        '$n = "http://{$server}/".($vcpParam 
            ? "flush-file-cache" 
            : "flushFileCache.php"
        )."?tags=".implode("-", array_keys($cacheTypes));'
    )
);

错误是

Warning: array_keys() expects parameter 1 to be array, null given
Warning: implode() [<a href='function.implode'>function.implode</a>]: Invalid arguments passed

非常感谢帮助。我很肯定它没有识别我输入的变量,但我不知道为什么

4

1 回答 1

6

您可以使用

$urls = array_map(function ($var) use($cacheTypes, $vcpParam) {
    return "http://{$var}/" . ($vcpParam ? "flush-file-cache" : "flushFileCache.php") . "?tags=" . implode("-", array_keys($cacheTypes));
}, $servers);
于 2012-10-16T17:19:38.767 回答