Willkommen auf dem Portal für Mediengestalter
|
|
Autor |
Nachricht |
Account gelöscht
Threadersteller
Ort: -
Alter: -
|
Verfasst Do 12.08.2004 21:58
Titel
|
|
|
ja geilo, et funktioniert bedankt an alle, hab direkt php5 installiert (yeah!)
|
|
|
|
|
Account gelöscht
Threadersteller
Ort: -
Alter: -
|
Verfasst Do 12.08.2004 22:45
Titel
|
|
|
So. Das ist ja super: __contruct() und __destruct hab ich schon entdeckt. Wer von euch Spezialisten kann mir denn nun mal Sinn und Unsinn folgender Neuerungen erklären:
private, public, protected class/method/property
was zum Teufel ist das für ein konstrukt:
Code: |
interface {
method1() {
[...]
}
}
$test=new interface;
|
und wo liegen die vorteile?
was mache ich - mit dem aus java bekannten exceptions (try...catch)? wo kann ich das am besten einsetzen?
was ist der unteschied zwischen der funktion const() und der deklaration einer eigenschaft durch das keyword "static"?
//
Ich hab noch einen: Was bedeutet "Ein Objekt überladen"?
Fragen über Fragen: Aber da geht ja echt noch einiges!!!
Zuletzt bearbeitet von am Do 12.08.2004 22:48, insgesamt 2-mal bearbeitet
|
|
|
|
|
Anzeige
|
|
|
Achim M.
Dabei seit: 17.03.2003
Ort: -
Alter: -
Geschlecht:
|
|
|
|
|
Waschbequen
Account gelöscht Threadersteller
Ort: -
|
Verfasst Fr 13.08.2004 09:27
Titel
|
|
|
XSchinkenX hat geschrieben: | private, public, protected class/method/property! |
Ich kann nur von C# sprechen, gehe aber mal davon aus, dass das Objektmodell überall gleich bzw. ähnlich ist.
private deklariert eine Methode oder Eigenschaft als "von außen nicht zugänglich", d.h. die wird nur für interne Zwecke deiner Klasse benutzt. Bei public ist's genau das Gegenteil, da kann alles und jeder von draußen drauf zugreifen. Da es bei PHP 5, wenn ich mich richtig erinnere, nur ne Einfachvererbung gibt, macht auch protected Sinn. D.h. quasi, dass deine Methode oder was auch immer, die als protected deklariert ist, nur einmal bzw. auf einer Ebene vererbt werden kann.
Beispiel aus ASP.NET: Eine ASPX-Seite arbeitet mit Codebehind, sprich einer eingebundenen Klasse. Wenn ich nun darin etwas protected deklariere, dann kann ich es in der ASPX-Seite noch verwenden, da erste Ebene - weiter aber nicht.
Das Prinzip von public Properties und private Fields: Sicherheit geht vor. Wenn du Eigenschaften für deine Klasse von außen Setzen lassen willst/musst, zum Beispiel DBConnection, dann macht man das wie folgt (Achtung: C#-Syntax):
Code: | private string _irgendwas;
public string Irgendwas {
get {
return _irgendwas;
}
set {
_irgendwas = value;
}
} |
Das ist nur der einfachste Fall, im Prinzip kannst du da auch noch Validierungen etc. reinpacken. Das ganze dient also quasi als Zugriffsschutz.
|
|
|
|
|
Account gelöscht
Threadersteller
Ort: -
Alter: -
|
Verfasst Fr 13.08.2004 09:57
Titel
|
|
|
Jau, danke, soweit so schlüssig. Selbst "abstrakte Klassen" erschließen sich, doch die Geschichte mit den Interfaces (lt. Doku eine perverse Einrichtung) ist mir einfach zu theoretisch... das raff ich noch nicht so...
ist wohl frustrierend, wenn man das komplette errorlogging anstellt und erst mal sieht, wie scheiße die skripte geschrieben wurden....
Zuletzt bearbeitet von am Fr 13.08.2004 10:15, insgesamt 1-mal bearbeitet
|
|
|
|
|
Waschbequen
Account gelöscht Threadersteller
Ort: -
|
Verfasst Fr 13.08.2004 11:22
Titel
|
|
|
Hehe
Ich mach sowas immer Step by Step. Klingt vielleicht doof - aber bei mir hat's selbst ne Weile gedauert, bis ich das Prinzip von private Fields & public Properties gerafft hab' - ich krieg sowas dann immer erst mit, wenn ich es wirklich praktisch anwende. Und mit selbstgeschriebenen Interfaces hab' ich zum Beispiel auch noch nix gemacht.
|
|
|
|
|
karmacoder
Dabei seit: 15.04.2002
Ort: Fürth
Alter: 42
Geschlecht:
|
Verfasst Fr 13.08.2004 11:48
Titel
|
|
|
interfaces machen glaube ich auch nur sinn in riesigen projekten an denen mehrere mitarbeiter beteidigt sind...
im kleinen wundert man sich warum man alles doppelt schreibt und nichts davon hat, ausser aufwand
im großen und ganzen kann man die php5 erneuerungen auf besseres oop und erweiterungen (xml, mysqli) beschränken.
|
|
|
|
|
rob
Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht:
|
Verfasst Fr 13.08.2004 14:40
Titel
|
|
|
also ich finde die interfaces eigentlich gar nicht so "pervers". wenn man sich mal so auschaut, was man in c++ mit mehrfachvererbung so alles anrichten kann... ich hab schon wilden code gesehen, wo der compiler eigentlich nur noch raten konnte, was wie wieso abgeleitet wird.
in java gibt es keine mehrfachvererbung mehr (die man ohnehin auch in c++ eigentlich so gut wie nie braucht). dafür hat man halt das konzept der interfaces eingeführt.
ob man das jetzt wirklich unbedingt in php braucht, das ist die frage (ich hab mir dieses feature in php noch nie gewünscht). aber es ist ansich doch ganz gut durchdacht und nicht pervers.
die meisten werden es ohnehin nie brauchen. insofern muß man sich da auch keine großen gedanken drum machen.
|
|
|
|
|
|
|
|
Ähnliche Themen |
[PHP5] Welches Buch zum Thema PHP5 ?
OOP in PHP5, Vererbung?
probleme mit php5
php3 zu php5?
php5 ausführen mit _.htaccess
php5 dom xml DOMElement->attributes
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|