我有一个递归复制功能,应该将所有文件从一个目录复制到另一个目录,但是它会出错。这是功能;
public function cpy($source, $dest){
if(is_dir($source)) {
$dir_handle=opendir($source);
while($file=readdir($dir_handle)){
if($file!="." && $file!=".."){
if(is_dir($source."/".$file)){
if(!is_dir($dest."/".$file)){
mkdir($dest."/".$file);
}
cpy($source."/".$file, $dest."/".$file);
} else {
copy($source."/".$file, $dest."/".$file);
}
}
}
closedir($dir_handle);
} else {
copy($source, $dest);
}
}
给出的错误是Fatal error: Call to undefined function cpy() in /var/www/Deployer/include/deployer.class.php on line 14
这个功能也在一个类中。
答案 0 :(得分:2)
你在使用任何课程吗?然后你应该使用:
$this->cpy(...)
或删除功能前面的public
。
答案 1 :(得分:2)
使用$this ->
public function cpy($source, $dest){
if(is_dir($source)) {
$dir_handle=opendir($source);
while($file=readdir($dir_handle)){
if($file!="." && $file!=".."){
if(is_dir($source."/".$file)){
if(!is_dir($dest."/".$file)){
mkdir($dest."/".$file);
}
$this->cpy($source."/".$file, $dest."/".$file);// use the $this keyword here
} else {
copy($source."/".$file, $dest."/".$file);
}
}
}
closedir($dir_handle);
} else {
copy($source, $dest);
}
}
答案 2 :(得分:0)
这可能是因为你在上课。
请改为尝试:
self::cpy($source."/".$file, $dest."/".$file);