Klasse in Klasse problemlos einfügbar?
Daniel unreg
- php
0 rob0 Daniel unreg0 dedlfix
0 Der Martin
Hallo,
Ich habe eine Klasse und in dieser Klasse gibt es eine Funktion.
Kann ich in dieser Funktion problemlos eine Datei einfügen (include/require), die nur eine andere Klasse enthält? Kann ich diese Klasse dann problemlos im weiteren Verlauf der Ausführung verwenden?
Gruß;
Hi!
und in dieser Klasse gibt es eine Funktion.
Du meinst eine Methode.
Kann ich in dieser Funktion problemlos eine Datei einfügen (include/require)
Ja, eigentlich schon.
Wenn du mit include() oder require() eine PHP-Datei einbindest, dann verhält sich dein Script so als wäre der eingebundene Code direkt an der Stelle des Aufrufes eingefügt.
Das funktioniert auch innerhalb einer Methode.
Siehe auch die Beschreibung zu include() im Handbuch.
Achte auf die Kommentare dort dazu. Da sind auch ein OOP-Beispiele.
die nur eine andere Klasse enthält? Kann ich diese Klasse dann problemlos im weiteren Verlauf der Ausführung verwenden?
Eine Klasse in einer Klasse?
Das sollte eine Fehlermeldung geben: "Class declarations may not be nested in ..."
Innere Klassen kenne ich in Java. Ich glaube nicht, daß es das auch in PHP gibt.
Schöner Gruß,
rob
Hallo,
Du meinst eine Methode.
Ja.., ich kann mit der Terminologie nicht wirklich viel anfangen.
Ja, eigentlich schon.
Das funktioniert auch innerhalb einer Methode.
Soweit ist mir das klar, darauf wollte ich nicht hinaus.
Eine Klasse in einer Klasse?
Das sollte eine Fehlermeldung geben: "Class declarations may not be nested in ..."
Mal diese Beispiel:
class abc {
function tu_das () {
// Hier Include :
class def {/*etc.*/}
// Ende Include;
}
}
PHP (5.2) gibt da keinen Fehler aus, ich kann beide Klassen verwenden. Die Frage ist nur, ob das problemlos möglich ist, z.B. in anderen Versionen, oder ob es mir nur problemlos erscheint, weil ich nur einen einfachen Test durchgeführt habe.
Gruß
echo $begrüßung;
Du meinst eine Methode.
Ja.., ich kann mit der Terminologie nicht wirklich viel anfangen.
Es hat sich in Fachkreisen jedes Gebiets eingebürgert, Fachbegriffe zu verwenden, die meist ziemlich genau bestimmte Dinge beim Namen nennen und sich dabei von ähnlichen Dingen abgrenzen. Das ist vorteilhaft, weil man somit kurz und prägnant formulieren kann.
Eine Klasse in einer Klasse?
Das sollte eine Fehlermeldung geben: "Class declarations may not be nested in ..."
Nö, man kann jedes abgeschlossene Code-Gebilde (Funktion, Klasse) in einer Funktion/Methode laden oder deklarieren. Das Ergebnis ist dann aber vom Zugriff nicht auf die Funktion/Methode begrenzt, in der es steht. Funktionen und Klassen werden generell global angelegt. Deshalb muss man auch dafür Sorge tragen, dass bei mehrfachem Aufruf die erneute Deklaration verhindert wird (function_exists(), class_exists()).
PHP (5.2) gibt da keinen Fehler aus, ich kann beide Klassen verwenden. Die Frage ist nur, ob das problemlos möglich ist, z.B. in anderen Versionen, oder ob es mir nur problemlos erscheint, weil ich nur einen einfachen Test durchgeführt habe.
Ich kann mich an keine Version erinnern, in der das nicht ginge. Innerhalb einer Funktion oder Methode (bedingt) Code nachzuladen wird z.B. in PEAR angewendet, das für Version 4 geschrieben war. (Frühere Versionen sind heute auch nicht mehr relevant.)
echo "$verabschiedung $name";
Hallo
Ich muss nicht alles zitieren, ich möchte nur Danke sagen. Der Beitrag war sehr hilfreich.
Gruß;
Hallo,
und in dieser Klasse gibt es eine Funktion.
Du meinst eine Methode.
das ist Wortklauberei: Eine Methode _ist_ eine Funktion - genauer gesagt, ein Sonderfall einer Funktion, nämlich eine Funktion, die an eine Klasse gebunden ist.
Daher ist die Formulierung "eine Funktion in einer Klasse" völlig korrekt, sie verwendet nur nicht den für diesen Sonderfall vorgesehenen Fachausdruck.
So long,
Martin