| 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: 12 let
|
|||
0