so ich hatte nun die zeit um mir das mal genauer anzuschauen.
Im großen und ganzen gefällt mir das sehr gut und auch die
art wie es geschrieben wurde. Es richtet sich wirklich an
anfänger und ist IMHO für diese veständlich. Die details, die du
im einsteigertutorial mit absicht ausser acht lässt, sollten
aber auf jeden fall im fortgeschrittenen teil auftauchen.
$this ist eine echte variable. Die besonderheit ist, dass sie konstant
ist und in jedem objekt existiert. Sie enthält immer eine referenz
auf das aktuelle objekt. (natürlich alles nur in php5)
Da hat du ganz unglücklich deine beispiele gewählt.
Du kannst nicht Mensch von Telefon ableiten. Die Ableitung
stellt eine "is-a"-Beziehung dar. Ein mensch ist aber doch
kein telefon!!!! In anderen sprachen könnte man protected ableiten
und so eine has-a beziehung modellieren, aber das geht hier nicht.
Ein mensch hat ein telefon (nicht so schön, weil nicht jeder mensch
eins hat) oder (besser) ein mensch nutzt ein telefon.
Dann leitest du restaurantkritiker einfach von mensch ab. Das
ist richtig, denn restaurantkritiker sind auch nur menschen.
4) Statisches
Das ist viel für den leser, vll hilft es ihm zu sagen dass $self im klassenbreich das ist was $this im objektbereich ist. Also ein alter
bekannter . Nur eben mit deinen worten.
So das war erstmal das gröbste.
Im fortgeschrittenen tutorial sollten vor den weitegehenden
themen auf jedenfall noch die grundbegriffe "Nachrichten", "Empfänger",
"Sender" auftauchen. Die sind elementar für jede umsetzung
von OOP.
so einer deiner nörgelköppe ist komplett durch. voher keinen blassen schimmer von klassen.
nacher immernoch nicht nein nein ich habe den gröten teil verstanden.
Da ich voher noch nichts wusste, weis ich, was ich besser erklärt gebraucht haben sollte und was sehr gut ist.
meine kleine kritik wirst du also gegen ende dieser woche erhalten.
Original geschrieben von Kropff
und warum nennen das dann alle pseudovariable?
Hmm, keine ahnung. Ich hab das auch noch nie gehört oder
gelesen. Könnte vll. daher rühren dass es sich eben um eine
konstante variable handelt. Aber $this is tatsächlich variabel.
Sie refernziert ja immer andere objekte, je nachdem wo sie verwendet
wird. Hmm, das könnte auch der grund sein dass manche sie
pseudovariable nennen, weil der selbe bezeichner abhängig vom
kontext unterschiedliche werte referenziert.
ich nur. aber ich kann dich trösten. eine einheitliche benamung gibt es nicht. nimm nur die variable in einer klasse. die heißt eigenschaft, member, instanzvariable und was weiss ich nicht. offenbar macht da jeder, wass er will.
gruß
peter
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson) Meine Seite
$this heißt Pseudovariable, weil es immer auf das Objekt selber referenziert. Sie ist deshalb keine wirkliche Variable (insofern nur, als dass sich das Objekt verändern könnte). Außerdem ist das auch nur innerhalb von Klassen möglich.
bzgl. "konstanten variablen": Der Ausdruck "konstante Variable" ist ein Oxymoron und als solcher ein Widerspruch in sich.
Entweder etwas ist veränderbar oder konstant. Beides geht aus Gründen der Logik nicht.
Von einer "konstanten Variablen" spricht man bei Klassen i.d.R. von Klassenkonstanten. Die kann man mit const definieren. Ich bezweifle, dass man $this eine "konstante Variable" nennen kann.
ja, wenn man das öfter liesst dann benutz auch den terminus.
Vll findet man das in php-literatur häufiger. Die lese ich nur
selten.
Original geschrieben von Shurakai
bzgl. "konstanten variablen": Der Ausdruck "konstante Variable" ist ein Oxymoron und als solcher ein Widerspruch in sich.
Entweder etwas ist veränderbar oder konstant. Beides geht aus Gründen der Logik nicht.
das ist nicht richtig. Ich gebe zu, dass es etwas verzwickt ist aber
auch aus rein logischer sicht ist das kein widerspruch.
Denn $this ist variabel. Allerdings darf man* nur einmal
einen wert zuweisen und von da an ist dieser nicht mehr veränderbar.
Welchen wert man allerdings nimmt ist relativ egal.
Von daher ist es eine variable.
*
Mit "man" ist hier der interpreter bzw. die laufzeitumgebnung gemeint.
Der user hat da keinen einfluss drauf.
Comment