kostenloser Webspace werbefrei: lima-city


Funktion oder Methode erweitern

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    das-koenigreich

    das-koenigreich hat kostenlosen Webspace.

    Gibt es eine Möglichkeit, eine Funktion oder eine Methode zu erweitern? Mir ist klar, dass man die bereits definierte Funktion oder Methode als ersten Befehl der neuen Funktion oder Methode aufrufen kann, aber ich hätte es gerne so, dass die verwendeten lokalen Variablen der Funktion oder der Methode auch in dem Erweiterungsteil verfügbar sind.

    Eine praktische Verwendung habe ich nicht, es geht mir also nur um die Theorie.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Nein, das widerspräche den bisherigen Regeln der Programmierung. Lokale Variablen sind nunmal lokal und eine Funktion kann nur insofern erweitert werden, als dass man sie selbst bearbeitet. Von außen kann man nicht darauf zugreifen. Außerdem würde das ein Vorkompilieren bedeuten, was bei PHP & Co. nicht gemacht wird.
    Es widerspricht der Objektorientierung, weil eine (geerbte) Funktion nicht geändert, höchstens überschrieben werden kann.
    Es widerspricht der Idee der Linearschrift, nach der Befehle dort stehen müssen, wo sie ausgeführt werden.
  4. Es gibt die möglichkeit, das eine Funktion eine andere Implementiert, somit kannst du einmal alle Grundfunktionen erstellen, und eine andere Funktion erweitert diese.
    Bei Java geht dies auf jedenfall, bei php gibt es ein keyword namens extends. (Sollte in etwa das gleiche bewirken)
  5. Seit PHP 5 kann man Methoden auch überladen. D.h. das die Methode den gleichen Namen besitzt, jedoch eine andere Anzahl Parameter übergeben werden. Einfach "Funktionen Überladen PHP" bei Google. Weiss nicht genau ob das hilft aber kannst du dir ja mal anschauen.
  6. das-koenigreich schrieb:
    Gibt es eine Möglichkeit, eine Funktion oder eine Methode zu erweitern? Mir ist klar, dass man die bereits definierte Funktion oder Methode als ersten Befehl der neuen Funktion oder Methode aufrufen kann, aber ich hätte es gerne so, dass die verwendeten lokalen Variablen der Funktion oder der Methode auch in dem Erweiterungsteil verfügbar sind.

    Eine praktische Verwendung habe ich nicht, es geht mir also nur um die Theorie.


    Das was du meinst, nennt sich Vererbung und ist in der objektorientierten Programmierung eine allgemeine Funktionalität. Dabei können Klassen um Methoden erweitert bzw. bestehende Methoden überschrieben (also neu definiert) werden. Infos dazu findest du im PHP Manuel - Objekt-Vererbung. Hope this helps! :biggrin:
  7. Autor dieses Themas

    das-koenigreich

    das-koenigreich hat kostenlosen Webspace.

    wagnerm schrieb:
    Das was du meinst, nennt sich Vererbung und ist in der objektorientierten Programmierung eine allgemeine Funktionalität.
    Nope. Ich will Methoden und Funktionen erweitern, keine Klassen. Durch die Vererbung von Methoden und Eigenschaftsfähigkeiten von Klassen bin ich aber auf diese Idee gekommen :biggrin:.

    Edit: Das meine ich etwa so:
    function a()
    {
    	$var = "hallo";
    }
    
    function b() extends a
    {
    	echo $var;
    }


    Beitrag zuletzt geändert: 17.3.2011 16:27:34 von das-koenigreich
  8. Ok, dass das auch mit Funktionen funktioniert, habe ich nicht gewusst. Das hat wohl meinen OOP-Horizont überschritten. :lol:

    Danke jedenfalls, dass du deinen Gedankengang mit uns teilst. :biggrin:
  9. das-koenigreich schrieb:
    Eine praktische Verwendung habe ich nicht, es geht mir also nur um die Theorie.

    Die Frage für was für einen Fall du das benötigst, ist dann schon mal unnötig.

    das-koenigreich schrieb:
    Nope. Ich will Methoden und Funktionen erweitern, keine Klassen. Durch die Vererbung von Methoden und Eigenschaftsfähigkeiten von Klassen bin ich aber auf diese Idee gekommen :biggrin:.

    Edit: Das meine ich etwa so:
    function a()
    {
    	$var = "hallo";
    }
    
    function b() extends a
    {
    	echo $var;
    }


    Soetwas gibt es nicht.
    Ich wüsste auch nicht, für was das Ganze gut sein soll...
  10. Autor dieses Themas

    das-koenigreich

    das-koenigreich hat kostenlosen Webspace.

    wagnerm schrieb:
    Ok, dass das auch mit Funktionen funktioniert, habe ich nicht gewusst. Das hat wohl meinen OOP-Horizont überschritten. :lol:
    Ähm, ich weiß nicht ganz ob das ernst gemeint ist, also tue ich mal lieber so: Den Code habe ich mir ausgedacht, um zu zeigen, was ich suche. Würde dieser Code funktionieren und ich wüsste das, hätte ich das Thema nicht eröffnet.
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!