我创建了一个递归函数scanFile
,但是我无法使用此函数返回数组,当我想将$array[$key]
推入$this -> fileArray
时,它给了我一个错误: / p>
PHP致命错误:未被捕获的错误:不在对象中时使用$ this createSprite.php:75
中的上下文
class createSprite
{
public $array;
public $fileArray = array();
function __construct($array)
{
global $argc;
$this -> arr = $array;
$this -> argc = $argc;
$this -> fileArray = $fileArray;
}
public function recursiveGetImage()
{
if($this -> argc > 2)
{
$fileArray = array();
function scanFile($dir)
{
$array = glob($dir . '/*');
if (is_array($array))
{
foreach($array as $key => $file)
{
if (is_dir($file))
{
scanFile($file);
}
elseif(is_file($file))
{
array_push($this -> fileArray, $array[$key]);
}
}
}
}
for($i = 1; $i < $this -> argc; $i++)
{
if(is_dir($this -> arr[$i]))
{
var_dump(scanFile($this -> arr[$i]));
}
}
}
else
{
echo "Entrez plusieurs fichiers";
}
}
}
答案 0 :(得分:0)
不要在类中使用嵌套函数-使用其他类方法(private
如果仅在内部使用),这将解决问题...
private function scanFile($dir) {
...
}
然后使用
进行调用$this->scanFile($file);