OOP??
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ahnung
array
beispiel
dank
datum
fell
frage
funktion
http
katze
klasse
kontrolle
laune
methode
objekt
problem
programm
programmieren
ren
teil
-
Und dann weiss ich nicht was dein Problem ist.
es wird nichts ausgegeben
Dann schau mal hier:
http://jacr.de/test/Daten.php?test=t
Und was macht er jetzt nicht????
Das ist der Code:
<?
class Daten
{
var $vars= array();
function kontrolle($was)
{
foreach($was as $_var_name => $_var_inhalt)
{
$this -> vars[$_var_name] = $_var_inhalt;
}
return $this -> vars;
}
}
$get_vars = array();
$post_vars = array();
$session_vars = array();
$cookie_vars = array();
$daten= new Daten;
$get_vars = $daten-> kontrolle($_GET);
$post_vars = $daten-> kontrolle($_POST);
//$session_vars = $daten-> kontrolle($_SESSION);
$cookie_vars = $daten-> kontrolle($_COOKIE);
print_r($cookie_vars);
?> -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
ja, in PHP gibt es vererbung
in php 4 gibt es nur schwache kapselung (was ja ein verbergen von daten innehat^^) erst mit php5 sind 'public', 'protected' und 'private' hinzugekommen
polymorphie da w?rde ich sagen jein. wenn man ganz von der m?glichkeit der abstrakten klassen absieht: nein
dazu sei wohl angemerkt, dass php keine 'wirkliche' oop sprache ist. zwer ist man mit php 5 sehr stark in die richtige richtug gegangen aber am 'ende' ist man noch nicht. -
Ain g?s??gn?t?s OO-st?rf??st!
Ich w?rde mal sagen "schwache Kapselung" ist f?r PHP4 sehr euphemistisch ausgedr?ckt: Da wird ?berhaupt nichts gekapselt: Man kann auf objekt-interne Variablen zugreifen, alle Methoden vom Hauptprogramm aus aufrufen usw. Das oo-typische "Black-Box-Prinzip" ist also ?berhaupt nicht gegeben. Wenn man sich aber an die Regeln h?lt, und z.B. so tut, als ob man nicht auf die objekt-internen Variablen zugreifen kann, stellt das weniger ein Problem dar. Um gut nutzbaren Code zu erzeugen, sollte man sowieso darauf verzichten, Variablen nach au?en hin sichtbar (PUBLIC) zu machen. Eigenschaften eines Objekts sollten immer durch Methoden abgefragt werden. Also, um bei meinem Beispiel zu bleiben:
nicht:
$welche_farbe_hat_die_miez = $meine_katze->fell;
sondern:
$welche_farbe_hat_die_miez = $meine_katze->fellfarbe();
In der Klassendefinition:
function fellfarbe() {
return($this->fell);
}
?ndert man n?mlich die Eigenschafts-Definition der Klasse, k?nnte die Variable $this->fell verschwinden und durch bessere Definitionen ersetzt werden:
var $fellfarbe; // z.B. grau, orange, schwarz
var $fellart; // z.B. einfarbig, gestreift, gepunktet
Alle Methoden und Codebestandteile des Hauptprogramms, die bisher die Variable $this->fell direkt abfragten, m?ssten jetzt ge?ndert werden. Bei der "Methoden-Methode" dagegen, muss nur die eine Methode abge?ndert werden:
function fellfarbe() {
return($this->fell);
}
Der Rest bleibt wie gehabt. Das erm?glicht zum Beispiel auch abw?rtskompatibles Programmieren.
F?r Methoden gibt es eine M?glichkeit, private Methoden auch in PHP zu erzeugen, d.h. den Aufruf nur innerhalb von anderen Methoden des gleichen Objektes zu erm?glichen (f?r 5 Gulden verrate ich das aber nicht ).
Das PHP nur eine um OO-Eigenschaften erweiterte Sprache ist, ist nicht weiter tragisch, C++ geht es da genau so (auch wenn viele das nicht wissen). Selbst in Java kann man noch nach der alten (prozeduralen) Methode arbeiten.
Wer echte objektorientierte Sprachen benutzen will, sollte sich besser mit SmallTalk oder Ruby besch?ftigen.
Nebenbei bemerkt: Man kann auch ohne OO-Funktionalit?t objektorientiert programmieren. Das Betriebssystem des Amiga (wei? noch irgendwer, was das f?r ein Computer ist?) hat seit der Version 1.0 (irgendwann in den 1980-ern) einen objektorientierten Kern. Nur hie?en damals die Begriffe eben anders: Statt Objekt sagte man Library.
M?G
alopex
P.S. Es freut mich, dass sich hier wenigstens ein paar oo-Interessierte eingefunden haben. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage