• Willkommen, Gast!
  • Freitag, 30. Oktober 2020, 02:04:11
Position: Home » Allgemeines » Allgemeines Board » keine doppelarrays
Antworten
Thema: keine doppelarrays [Seite 1 ]

Kein neuer Beitrag Mars , 03.04.2011, 19:51
Beitrag #1   

IP: n/a
Rang: * * * * * * *
Registrierung: 04.09.2007, 15:49
Homepage: http://www.mliebgott.de
Wohnort: Dresden
 

Forum-Gott mit 1025 Punkte, 697 Beiträge
Abend Leuts ...
ich bin gerade vor ein kleines Problemschenschenschen gestoßen
ich möchte ein array, welches wiefolgt aufgebaut ist
PHP:
1
2
3
4
5
6
7
<?php
$bla = array(
     $dir_1 = array(array($file_1 => fileperms($file_1), array($file_2 => fileperms($file_2)),
     $dir_2 = array(array($file_2 => fileperms($file_1), array($file_2 => fileperms($file_2)),
     //...
);
?>


jedoch erhalte ich folgende Fehlermeldung:
syntax error, unexpected T_DOUBLE_ARROW

Nun noch hier die Funktion, welche dieses array erzeugen soll
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
final public function loadFilesInDir($dirs = array()){
    try{
      if(($count = count($dirs)) > 0){
        $files_in_dir = array();
        for($i = 0$i < $count$i++){
          $handle = opendir($dirs[$i]);
          while($file = readdir($handle)){
            if($file != '.' && $file != '..'){ 
              $files[] = ($file => fileperms($file));
            }
          }
          $files_in_dir[0] = $dirs[$i];
          $files_in_dir[$i+1] = $files;
          unset($files);
        }
        
        return $files_in_dir;
      }else{
        throw new Exception('array out of bound');
      }
    }catch(Exception $e){
      $e->getMessage();
    }
  }
?>


kann mir jemand eine andere/bessere Möglichkeit nennen, wie ich das bewerkstelligen könnte?

Grüße Marcel
Dieser Beitrag wurde insgesamt 1 mal editiert. Das letzte Mal 03.04.2011, 19:52 von Mars.

 
Kein neuer Beitrag Rafioso , 03.04.2011, 20:19
Beitrag #2   

IP: n/a
Rang: * * * * * * *
Registrierung: 30.08.2006, 22:31
Homepage: http://HomepageStarter.de
Wohnort: O-BW
 

Forum-Gott mit 1723 Punkte, 1537 Beiträge
Hi,

wie wäre es mit
PHP:
1
$files[$file] = (fileperms($file));


MfG
Rafioso

Aktuellste Boardsolution-Version: v1.46
Kommende Boardsolution-Version: TBA
-----------------------------------------------------
Ich erstelle nur noch Modifikationen
für aktuelle Versionen!
-----------------------------------------------------

 
Kein neuer Beitrag Nils , 03.04.2011, 21:04
Beitrag #3   

IP: n/a
Rang: * * * * * * *
Registrierung: 01.07.2003, 18:55
Homepage: http://www.script-solution.de
Wohnort: Marburg
 

Forum-Gott mit 7812 Punkte, 7566 Beiträge
Omg...was machst du da? :shock:
Wenn das Array $dirs leer ist, schmeißt du ne Exception mit der Meldung "array out of bound" (was
schon mal totaler Quatsch ist ;)) und die fängst du in der gleichen Funktion wieder und gibst die
Meldung aus!?? :D
Edit: Oh, ne, du gibst sie nicht mal aus, sondern rufst nur getMessage() auf, was überhaupt keinen
Effekt hat ;)

mfg Nils
Dieser Beitrag wurde insgesamt 1 mal editiert. Das letzte Mal 03.04.2011, 21:05 von Nils.

 
Kein neuer Beitrag Mars , 03.04.2011, 21:08
Beitrag #4   

IP: n/a
Rang: * * * * * * *
Registrierung: 04.09.2007, 15:49
Homepage: http://www.mliebgott.de
Wohnort: Dresden
 

Forum-Gott mit 1025 Punkte, 697 Beiträge
naja ich übergebe ja nen array mit directories und anhand dessen sollen ja die die entsprechenden
files inclusive die zugriffsrechte gespeichert werden.
aber laut den ganzen tuts, welche ich mir angeschaut habe soll das so sein bzw. exceptions

mfg Marcel

 
Kein neuer Beitrag Nils , 03.04.2011, 21:23
Beitrag #5   

IP: n/a
Rang: * * * * * * *
Registrierung: 01.07.2003, 18:55
Homepage: http://www.script-solution.de
Wohnort: Marburg
 

Forum-Gott mit 7812 Punkte, 7566 Beiträge
Mars hat folgendes geschrieben:
naja ich übergebe ja nen array mit directories und anhand dessen sollen ja die die entsprechenden
files inclusive die zugriffsrechte gespeichert werden.
aber laut den ganzen tuts, welche ich mir angeschaut habe soll das so sein bzw. exceptions

Was ist das bitte für ein Tutorial, was so ein Unfug erzählt?
Und selbst wenn..überleg doch mal ein bisschen. Warum sollte man eine Exception selbst schmeißen,
nur um sie dann wieder zu fangen und die Meldung auszugeben? Warum gibst du dann nicht direkt die
Meldung aus? ;)

Der Sinn von Exceptions ist, Fehler erst dort zu behandeln, wo man etwas sinnvolles tun kann.
Sprich, deine Funktion könnte ne Exception werfen und der Verwender kann sie fangen und behandeln.
Z.B. deshalb, weil nicht unbedingt jeder die Meldung einfach ausgeben möchte. Vielleicht möchte sie
der eine loggen und der andere möchte sie ganz ignorieren.
Des Weiteren kommt man dadurch von dem lästigen Rückgabe-wert-auf-Fehlercode-prüfen weg und
behandelt Fälle, die normalerweise nicht vorkommen, auf angemessen Weise: als Ausnahmen.

Aber ganz abgesehen davon, ergibt es bei deiner Funktion wenig Sinn. Wenn der Aufrufer keine
Verzeichnisse übergibt, warum nicht einfach ein leeres Array zurückgeben? Denn das ist doch das,
was man intuitiv erwartet: Wenn ich kein Verzeichnis habe, sind dort auch keine Dateien drin.

Noch ne Sache: Der Default-Wert von $dirs ist array() bei dir, also ein leeres Array. Gleichzeitig
verlangst du, mehr oder weniger, dass kein leeres Array übergeben wird. Nicht besonders intuitiv ;)

mfg Nils

Abonnieren Druckansicht
Antworten

n/a n/a 1     (Anzeige: 1 – 5; insgesamt: 5) n/a n/a
User in diesem Thema: 0 Registrierte, 0 Versteckte, 1 Gast, 0 Bots
Keine
Legende: Administratoren, User, Moderatoren
Themenaktionen:
Beiträge verschieben

Toggle Ähnliche Themen zu „keine doppelarrays“
  Antworten Aufrufe Themeneröffnung Letzter Beitrag
Es wurden keine Themen gefunden.
  • 0.034949 Sek., 10 DB-Zugriffe, 884.633 KiB
  • Powered by Boardsolution v1.46