php - 如何在我的递归函数php中传递一个数组
问题描述
我创建了一个递归函数scanFile
,但我不能用这个函数返回一个数组,当我想推入时它给了我一个$array[$key]
错误$this -> fileArray
:
PHP 致命错误:未捕获的错误:在 createSprite.php:75 中不在对象上下文中时使用 $this
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";
}
}
}
解决方案
不要在类中使用嵌套函数 - 使用另一个类方法(private
如果它只在内部使用),这将停止问题......
private function scanFile($dir) {
...
}
然后使用
$this->scanFile($file);
推荐阅读
- sql - 如何在 sql developer 中计算 oracle db 中的模式大小?
- postgresql - 每个数据库限制的 Postgresql 关系
- c# - c#异步等待任务:不能等待'void'
- javascript - 是否可以手动使动态导入失败?
- docker - docker版本的Gitlab CI / CD问题
- r - R编程中的向量和函数
- javascript - 聚焦/取消聚焦范围滑块处理程序使用的输入
- flutter - The argument type 'dynamic' can't be assigned to the parameter type 'String'
- .net - 检查 TcpClient 是否实际连接
- python - python中具有多个条件的“For / If”循环