Autor | Zpráva | ||
---|---|---|---|
Josef14 Profil * |
#1 · Zasláno: 31. 5. 2014, 16:42:51
Ahoj dělám program, který vypíše všechny soubory v složkách:
public function readDisk($path){ error_reporting(0); $handler = opendir($path); $i = 0; $str = null; while($file = readdir($handler)){ if($file != "." && $file != "..") { if(!is_numeric(strpos($file, "$"))){ $filepath = $path."\\".$file; if(is_dir($filepath)){ if($i == 6) continue; $this->readDisk ($filepath); $i++; } else $str .= $filepath."<br>"; //funguje echo $filepath."<br>"; } } } return $str; } Chtěl bych to udělat tak, abych mohl výstup této metody uložit do souboru. Ale když v else použiju vkládání do proměnné, nebo tam dám yield, tak se vypisuje pouze kořenový adresář. když to v else přímo vypisuju v echo, tak to funguje normálně. nevíte kde je problém? |
||
Alphard Profil |
Proměnnou $str přesuňte o úroveň výš, tj. na úroveň třídy, přistupujte k ní
$this->str a pak nebude problémem lokální kontext rekurzivně volané metody.
Nebo tam nechte ten return, ale musíte pak návratovou hodnotu spojovat s lokální $str. |
||
Josef14 Profil * |
#3 · Zasláno: 31. 5. 2014, 16:57:39
díky, už to funguje.
|
||
Časová prodleva: 11 let
|
0