tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
331
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Hektik
    Hektik Hektik ist offline Mitglied Brokat
    Registriert seit
    May 2004
    Ort
    Kleve (NRW)
    Beiträge
    300
    Hallo!

    Ich habe gerade versucht, die "directorylist.class.php" von Dennis Wronka zu verstehen. Die Klasse erzeugt ein Array mit der Verzeichnisstruktur eines vorgegebenen Verzeichnisses.

    Zur Info:
    PHP-Code:
    <?php
    class directorylist
    {
        var 
    $name;
        var 
    $subdirs;
        var 
    $files;
        
        function 
    directorylist($dirname,$sort=false,$limitrecursion=false,$recursiondepth=0)
        {
            
    $this->name=$dirname;
            
    $this->subdirs=array();
            
    $this->files=array();
            
    $dir=opendir($dirname);
            while (
    $file=readdir($dir))
                {
                    if ((
    $file!=".") && ($file!=".."))
                        {
                            if (
    is_dir($dirname."/".$file))
                                {
                                    if ((
    $limitrecursion==false) || ($recursiondepth>-1))
                                        {
                                            
    $this->subdirs[]=new directorylist($dirname."/".$file,$sort,$limitrecursion,$recursiondepth-1);
                                        }
                                }
                            else
                                {
                                    if ((
    $limitrecursion==false) || ($recursiondepth>-1))
                                        {
                                            
    $this->files[]=$file;
                                        }
                                }
                        }
                }
            
    closedir($dir);
            if (
    $sort==true)
                {
                    
    sort($this->files);
                    
    rsort($this->subdirs);
                }
        }

        function 
    findsubdirbyobject($needle)
        {
            for (
    $x=0;$x<count($this->subdirs);$x++)
                {
                    if (
    $this->subdirs[$x]==$needle)
                        {
                            return 
    $x;
                        }
                    else
                        {
                            
    $val=$this->subdirs[$x]->findsubdirbyobject($needle);
                            if (
    $val!=-1)
                                {
                                    return 
    $x.','.$val;
                                }
                        }
                }
            return -
    1;
        }

        function 
    findsubdirbyname($needle)
        {
            for (
    $x=0;$x<count($this->subdirs);$x++)
                {
                    if (
    $this->subdirs[$x]->name==$needle)
                        {
                            return 
    $x;
                        }
                    else
                        {
                            
    $val=$this->subdirs[$x]->findsubdirbyname($needle);
                            if (
    $val!=-1)
                                {
                                    return 
    $x.','.$val;
                                }
                        }
                }
            return -
    1;
        }

        function 
    findsubdir($needle)
        {
            
    $vartype=gettype($needle);
            if (
    $vartype=="string")
                {
                    return 
    $this->findsubdirbyname($needle);
                }
            elseif (
    $vartype=="object")
                {
                    return 
    $this->findsubdirbyobject($needle);
                }
            else
                {
                    return -
    1;
                }
        }
    }
    ?>
    Meine Frage ist jetzt:

    Was bedeutet z.B. solch eine Zeichenkette:

    PHP-Code:
    $images->subdirs[$_GET['gallery']-1]->files[$_GET['image']-1
    ich kenne if, else, isset, =, ==, !=, &&, || und so weiter, aber was bedeutet: "->" ?

    Danke schon mal im Vorraus für die Mühe :P
     

  2. #2
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Mit -> wird eine Variable oder Funktion innerhalb eines Objektes angesprochen.

    Das von Dir gepostete Beispiel
    PHP-Code:
    $images->subdirs[$_GET['gallery']-1]->files[$_GET['image']-1
    greift auf eine Datei zu welche sich in einem Unterverzeichnis befindet. Dieses Unterverzeichnis wird wieder durch ein Objekt der Klasse DirectoryList repraesentiert und befindet sich halt im Array subdirs innerhalb des Objektes $images.
    Also mal ganz allgemein:
    In einem Objekt der Klasse DirectoryList hast Du 2 Arrays, subdirs und files.
    Das Array files ist ganz schlicht die Liste der in dem vom Objekt repraesentierten Verzeichnis gefundenen Dateien.
    Das Array subdirs jedoch ist ein Array mit weiteren Objekten der Klasse directorylist, repraesentativ fuer die gefundenen Unterverzeichnisse, inklusive deren Inhalt.

    Ich hoffe, dass war einigermassen verstaendlich zusammengedichtet.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  3. #3
    Avatar von Hektik
    Hektik Hektik ist offline Mitglied Brokat
    Registriert seit
    May 2004
    Ort
    Kleve (NRW)
    Beiträge
    300
    Der Dennis wieder Dankeschön

    Dann werd ich jetzt wohl lernen müssen, was mit Klassen auf sich hat, das hab ich nämlich noch nicht gehabt. Haste da vllt noch einen schönen Link für mich? Ansonsten google ich einfach mal drauf los
     

  4. #4
    Avatar von Irgendjemand_1
    Irgendjemand_1 Irgendjemand_1 ist offline Mitglied Platin
    Registriert seit
    Aug 2005
    Beiträge
    656
    Zitat Zitat von Hektik
    Der Dennis wieder Dankeschön

    Dann werd ich jetzt wohl lernen müssen, was mit Klassen auf sich hat, das hab ich nämlich noch nicht gehabt. Haste da vllt noch einen schönen Link für mich? Ansonsten google ich einfach mal drauf los
    Klassen sind am Anfang sowieso immer schwer zu verstehen.
    Das heißt man versteht am Anfang gar nicht, was das bringen soll etc.
    Aber wenn man es einmal verstanden hat, dann sieht man auch, wie praktisch das Ganze ist.
    Klassen sind ja dazu da, um das den Programmiercode so zu gestalten, dass er verständlicher ist (vorallem übersichtlicher).

    http://tut.php-q.net/klassen.html
    Vielleicht hilft dir das
    Das ist ein Beispiel mit Meerschweinchen, klingt vielleicht merkwürdig und Nutzlos, ist aber eigentlich ganz gut.
     
    Just because you're paranoid, don't mean they're not after you.
    Kurt Cobain


    Experiment: Kohlkopf

Ähnliche Themen

  1. C++ Verständnis Problem!!
    Von Foxgame im Forum C/C++
    Antworten: 6
    Letzter Beitrag: 20.11.07, 22:45
  2. Java5-Syntax in Java1.4-Syntax?
    Von magic_halli im Forum Java
    Antworten: 9
    Letzter Beitrag: 24.10.07, 14:11
  3. Verständnis Frage...
    Von Radhad im Forum CSS
    Antworten: 3
    Letzter Beitrag: 18.10.06, 17:10
  4. sql von jet(access)-Syntax zu mySQL-Syntax
    Von julegner im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 04.10.06, 12:28
  5. Session-Verständnis
    Von Arndtinho im Forum PHP
    Antworten: 2
    Letzter Beitrag: 27.11.03, 13:16