它给了我这个错误注意:未定义的变量:newfile 当然它也给了我 fwrite()期望参数1是资源,null给定原因第一个错误。我做错了什么?
$file = fopen("mycsv.csv", 'r');
$newfile = fopen("myjson.txt", 'w');
function write($text, $tab) {
$tabs = "";
for ($index = 0; $index < $tab; $index++) {
$tabs .= "\t";
}
fwrite($newfile, $text."\n".$tabs); //error here
}
答案 0 :(得分:3)
阅读手册中的variable scope
$ file和$ newfile是全局的,因此在您的函数中无法在本地访问$ newfile。将其移入函数,将其作为参数传递或作为最后的手段在函数中将其声明为全局
答案 1 :(得分:0)
你需要使$newfile
全局能够在函数范围内使用它:
function write($text, $tab) {
global $newfile;
// ... the rest
}
答案 2 :(得分:0)
函数内使用的任何变量默认都限制在本地函数范围内。
请参阅:http://php.net/manual/en/language.variables.scope.php
如果将$ newfile设为全局变量或将其作为另一个函数参数传递,则可以执行所需的操作。
答案 3 :(得分:0)
功能超出范围。您可以将打开的文档直接发送到函数,以便在函数范围内使用它。
function write($newfile,$text,$tab){
//the rest of your code
}
$returned = write($newfile,$text,$tab);