[PHP4] Vordefinierte Klasse Directory erweitern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [PHP4] Vordefinierte Klasse Directory erweitern

    Ich wollte mir gerne die vordefinierte Klasse Directory erweitern. (PHP 4.4.0)

    Einfaches Beispiel:
    PHP-Code:
    class myDir extends Directory {
        function 
    show() {
            echo 
    $this->path."<br>\n";
            echo 
    $this->handle."<br>\n";
            echo 
    $this->read()."<br>\n";
            
    $this->close();
        }

    Wenn ich mir davon nun aber eine neue Instanz erzeuge, und versuche die show()-Methode aufzurufen, bekomme ich die folgenden Notices/Warnings:
    Code:
    Notice: Undefined property: path in ... on line 10
    Notice: Undefined property: handle in ... on line 11
    Warning: read(): Unable to find my handle property in ... on line 12
    Warning: close(): Unable to find my handle property in ... on line 13
    Ich hätte eigentlich erwartet, dass die Deklaration meiner Klasse myDir mittels extends wie beim Erweitern einer "eigenen" Klasse auch die Eigenschaften und Methoden von Directory erbt - dem scheint aber wohl nicht so zu sein.

    Am Anfang meiner eigenen Klasse
    PHP-Code:
    var $path$handle
    einzufügen, bringt natürlich auch nichts - die Notices bzgl. der undefined properties verschwinden zwar, aber:
    Code:
    Warning: read(): supplied argument is not a valid Directory resource in ... on line 12
    Warning: close(): supplied argument is not a valid Directory resource in ... on line 13
    path und handle bekommen so beim Erzeugen der Objektinstanz auch keine Werte zugewiesen.


    Mache ich etwas falsch - oder lässt sich die vordefinierte Klasse Directory so einfach nicht benutzen?


    Klar, ich könnte mir noch einen Konstruktor dazubasteln:
    PHP-Code:
        function myDir($path) {
        echo 
    "im konstruktor!<br>\n";
        
    $x dir($path);
        
    $this->path $x->path;
        
    $this->handle $x->handle;
        unset(
    $x);

    Damit würde es funktionieren ... aber das erscheint mir doch arg unsauber bis blödsinnig: Wenn ich im Konstruktor von myDir nochmal dir aufrufe - dann hätte ich es mir gleich sparen können, myDir von dir abzuleiten, und hätte es gleich prozedural programmieren können.
    I don't believe in rebirth. Actually, I never did in my whole lives.

  • #2
    Hallo Wahsaga,

    ich vermute dass es da ein paar interne Verschiedenheiten gibt. Vielleicht weil die Funktionen von PHP Funktionen sind, die in C geschrieben wurden?

    Solltest du auf das Thema hier keine vernüfntige Antwort bekommen, würde ich gerne eine E-Mail an die Developer List schicken. Mich interessiert das
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar

    Lädt...
    X