[PHP] OOP $this & ->

Pagina: 1
Acties:

Onderwerpen


  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
Hallo,

Ik ben bezig met OOP in PHP.
Maar in de tutorials gebruiken ze altijd zonder uitleg de var $this en soms ook
$this->$var2->$var3($var4)

Wat is nu precies de functionele waarde van $this? En wat doet -> precies bij die functies?

Kan iemand mij helpen?

mijn naam slaat nergens op, althans niet op mij :P


  • thomasfilius
  • Registratie: Januari 2001
  • Laatst online: 16-09 13:10

thomasfilius

zappaeske strapatsen

$this verwijst naar de class waarin je momenteel bezig bent.

Zie php.net voor verdere (naar mijn mening) heldere uitleg.

Watch out where the huskies go an' don't you eat that yellow snow!


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 12:38
Zie boven mij, en -> verwijst naar een functie of variabele binnen een class. Dat is nou juist het hele principe van OOP.

En je bent ermee bezig? Als dat zo was had je dit wel geweten ;).

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
Nou, hoe dan?
Ik ben namelijk gewend te zoeken op trefwoorden.
en $this en -> is zoeken wat lastig.
Ik kan GEEN goede uitleg hierover vinden zoals je dat bijvoorbeeld over if else kan vinden op php.net

mijn naam slaat nergens op, althans niet op mij :P


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 12:38

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

een functie of variabele binnen een class
[mierenneukmode]
je bedoelt een methode of member binnen een class ;)
[/mierenneukmode]

日本!🎌


Verwijderd

_Thanatos_ schreef op 13 november 2003 @ 10:00:
[...]

[mierenneukmode]
je bedoelt een methode of member binnen een class ;)
[/mierenneukmode]
[mierenneukmode]
Heb je ook methodes en members buiten een class dan?
[/mierenneukmode]

topicstarter: als je met oop bezig gaat vergeet dan dit niet te lezen voordat je objecten als argumenten mee gaat geven in methodes.

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 19-09 22:18

chem

Reist de wereld rond

Zoolander schreef op 13 november 2003 @ 09:46:
Hallo,

Ik ben bezig met OOP in PHP.
Maar in de tutorials gebruiken ze altijd zonder uitleg de var $this en soms ook
$this->$var2->$var3($var4)

Wat is nu precies de functionele waarde van $this? En wat doet -> precies bij die functies?

Kan iemand mij helpen?
Het lijkt me extreem sterk dat ze in tutorials werken met
PHP:
1
$this->$var2->$var3($var4)
en niet met
PHP:
1
$this->var2->var3($var4)
aangezien variabele variabelen vrijwel onleesbare code oplevert.
Let daar dus op, anders kom je er nooit uit ;)

Klaar voor een nieuwe uitdaging.


  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
ja waar. Was ook alleen ter illustratie.
$this->var1->var2($var3); is zo als het hoort.
Denk dat ik hier toch een boek voor moet aanschaffen, omdat
classes best wat regeltjes met zich mee brengen.
De PHP.net site legt niet ALLES uit lijkt....

mijn naam slaat nergens op, althans niet op mij :P


  • Kippenijzer
  • Registratie: Juni 2001
  • Laatst online: 26-08 09:08

Kippenijzer

McFallafel, nu met paardevlees

Voor een globale indruk wat zoal kan en op welke manier kun je een op phpfreakz.com rondkijken, en dan in de tutorial sectie (niet de user-contributed) kijken naar de verschillende OOP voorbeeld/tutorials die daar staan

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Volgens mij zit je probleem ook niet zo zeer in PHP maar meer in het "hoe ga je om met object georienteerd programmeren?". (ook wel OOP)

Ik raad je dus aan om je eens een beetje te verdiepen in het concept OOP ipv je bezig te houden met "wat is $this in PHP?". Dan kun je, nadat je die principes je een beetje eigen hebt gemaakt, eens kijken hoe je dat moet gaan implementeren in PHP. Dan zul je er ongetwijfeld achter komen dat de OOP implementatie van PHP zeer summier is vergeleken bij de tutorials die je er over leest. Maar het is beter om vanuit de "echte" OOP gedachte te beginnen dan met de gereedschappen die PHP je biedt aan te gaan prutsen ;)

Wat ik zelf wel een hele aardige introductie vindt op OOP vind je hier. Het uitgangspunt daar is Java, maar je zult zien dat je daar meer aan hebt dan de voor het grootste deel (imho) brakke tutorials op phpfreakz (nofi :))

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

Grappige en duidelijke tutorial drm :+ :

Java:
1
2
3
public void drinkWhiskey() { 
drunkenness ++; 
} 


en over dit soort dingen:
PHP:
1
2
// achter de -> : dat zijn dus methods/instances he ;)
$this->method->instance->method3($var)
Probeer eerst iets te bouwen in de trant van
PHP:
1
2
3
$mooh= new someClass();
$mooh->setSomeVariable('splut');
echo $mooh->someVariable;
Dan heb je een beter zicht op wat $this nou eigenlijk doet. :)

[ Voor 6% gewijzigd door RedRose op 13-11-2003 12:19 ]

Sundown Circus


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

[mierenneukmode]
Heb je ook methodes en members buiten een class dan?
[/mierenneukmode]
Ik kan het echt niet laten, maar voor de goede orde: ja, ze kunnen ook in een struct zitten (weet niet of dat in PHP kan, maar in OO-termen iig wel).

日本!🎌


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

_Thanatos_ schreef op 13 november 2003 @ 12:54:
[...]

Ik kan het echt niet laten, maar voor de goede orde: ja, ze kunnen ook in een struct zitten (weet niet of dat in PHP kan, maar in OO-termen iig wel).
Oh, en wat is het verschil tussen een "struct" en een "class" dan, in OO-termen?

En om op je eerdere reactie terug te komen: memberfunctions en membervariables zijn gewoon termen die gebruikt worden hoor. Dat daar over het algemeen methods en attributes (nee, dus niet members, want een method is ook een member) voor gebruikt worden wil natuurlijk niet zeggen dat dat het enige correcte is

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

.oisyn:
Oh, en wat is het verschil tussen een "struct" en een "class" dan, in OO-termen?
We kunnen dan nu de discussie opnieuw gaan voeren of accesslevels en -modifiers een must is voor OO :D

dwz. afaik is heeft een struct default public members en een class default private members
En om op je eerdere reactie terug te komen: memberfunctions en membervariables zijn gewoon termen die gebruikt worden hoor. Dat daar over het algemeen methods en attributes (nee, dus niet members, want een method is ook een member) voor gebruikt worden wil natuurlijk niet zeggen dat dat het enige correcte is
oeh oeh, ik weet nog een naam. "Properties" wordt ook vaak gebruikt voor membervariabelen!! :) :P

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

drm schreef op 13 november 2003 @ 13:55:
dwz. afaik is heeft een struct default public members en een class default private members
dat is in C++ zo, en volgens mij voor maar slechts 1 reden: backwards compatiblity met C (C kent immers wel structs maar geen access specifiers).

Het verdere verschil is 0, en ik had het ook meer over de achterliggende OO-gedachte. Volgens mij bestaan dingen als structs helemaal niet als een apart iets in OO, het is immers gewoon een klasse

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

.oisyn:
dat is in C++ zo, en volgens mij voor maar slechts 1 reden: backwards compatiblity met C (C kent immers wel structs maar geen access specifiers).
Zoiets zal 't wel zijn ja.
Het verdere verschil is 0, en ik had het ook meer over de achterliggende OO-gedachte. Volgens mij bestaan dingen als structs helemaal niet als een apart iets in OO, het is immers gewoon een klasse
Neuh, ben ik wel met je eens en _Thanatos_ ongetwijfeld ook, maar strict genomen heet een struct nou eenmaal anders dan een class. Je wordt afaik ook meer "geacht" structs te gebruiken om data te groeperen en classes voor alles wat (verder) met OOP te maken heeft. Maar dat is meer een kwestie van smaak, denk ik. :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1