как передать массив в моей рекурсивной функции PHP - PullRequest
0 голосов
/ 10 ноября 2018

Я создал рекурсивную функцию scanFile, но я не могу вернуть массив с этой функцией. Она выдает ошибку, когда я хочу вставить $array[$key] в $this -> fileArray:

Неустранимая ошибка PHP: Uncaught Ошибка: использование $ 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";
        }
    } 

}

1 Ответ

0 голосов
/ 10 ноября 2018

Не используйте вложенные функции в классах - используйте другой метод класса (private, если он используется только внутри), это решит проблему ...

private function scanFile($dir) {
...
}

Затем позвоните, используя

$this->scanFile($file);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...