我有这个代码可以很好地独立运行:
file_put_contents('dataFile', implode('',
array_map(function($data) {
return stristr($data,"NSQ = ") ? "NSQ = school\n" : $data;
}, file('dateFile'))
));
Run Code Online (Sandbox Code Playgroud)
这会读取 dataFile 并找到条目NSQ =
并将其更新为NSQ = school
我要多次重用这个,所以把它改成了一个函数:
function updatesite($site) {
file_put_contents('dataFile', implode('',
array_map(function($data) {
return stristr($data,"$site = ") ? "$site = school\n" : $data;
}, file('dateFile'))
));
}
Run Code Online (Sandbox Code Playgroud)
最初,我得到了一个$site
不存在的错误,所以我global $site;
在返回之前添加了。
这停止了错误,但它不会更新文件。
有什么办法可以使用这样的变量吗?
您可以使用use
将变量传递给函数回调,如下所示:
function updatesite($site) {
file_put_contents('dataFile', implode('',
array_map(function($data) use ($site) {
return stristr($data,"$site = ") ? "$site = school\n" : $data;
}, file('dateFile'))
));
}
Run Code Online (Sandbox Code Playgroud)