in php OOP, een class, maakt het uit hoe je een var maakt? e.g. public, private, global etc.

of maakt dat niet uit? als het wel uitmaakt... wat is het verschil? en wanneer gebruik ik wat?

zelfde met functies. hoe zit dit precies?
RichardvV schreef op 28.01.2010 10:16
Jim, waar de hel zie jij staan dat ik zeg dat alles public moet zijn? Als het aan mij lag zou je members alleen maar protected kunnen maken.

Echt, wat probeer je mij nou wijs te maken, ik denk dat ik "iets" meer ervaring met programmeren heb dan jij.


RichardvV schreef op 28.01.2010 09:42
[quote='Jim schreef op 28.01.2010 09:40'][quote='wesley schreef op 28.01.2010 09:30']Maar ik las juist ergens: Private is evil.

Ik denk dat je nog veel te leren hebt.

Ik zeg dat private evil is, protected is veel beter.[/quote]

1) Ik zeg NIET dat je alles public moet maken!
2) Ik zeg WEL dat private enorm nuttig is!
3) Wil jij dan verklaren waarom Private Evil is en Protected veel beter?

overigens :
RichardvV schreef op 28.01.2010 10:16

Echt, wat probeer je mij nou wijs te maken, ik denk dat ik "iets" meer ervaring met programmeren heb dan jij.


Waar baseer je dit op???

p.s.: RichardvV: You are the bomb!
Jim schreef op 28.01.2010 10:30
[quote='RichardvV schreef op 28.01.2010 10:16']Jim, waar de hel zie jij staan dat ik zeg dat alles public moet zijn? Als het aan mij lag zou je members alleen maar protected kunnen maken.

Echt, wat probeer je mij nou wijs te maken, ik denk dat ik "iets" meer ervaring met programmeren heb dan jij.


1) Ik zeg NIET dat je alles public moet maken!
2) Ik zeg WEL dat private enorm nuttig is![/quote]
Ik zeg dat precies hetzelfde, behalve dan private => protected.


en :
RichardvV schreef op 28.01.2010 10:16

Echt, wat probeer je mij nou wijs te maken, ik denk dat ik "iets" meer ervaring met programmeren heb dan jij.


Waar baseer je dit op???

p.s.: RichardvV: You are the bomb!

Dat baseer ik op je mening.
Bedankt Jim. Ik snap het nu.

Dus als ik het goed begrijp, moet ik variabelen die alleen IN de class gebruikt mogen worden, private maken. of protected? maakt niet uit welke? en public is voor beide. En global is goor, want dat pushed het alle scripts en functies in. toch?
Ik had nog een edit:
Wil je met jou ervaring, aan ons allen duidelijk maken waarom protected veel beter is dan private?

Dan kunnen we daar actie op ondernemen...
@RichardvV: Als je zoveel beter bent, stop dan met bitchen op mijn topic en post wat nuttigs.
wesley schreef op 28.01.2010 10:35
Bedankt Jim. Ik snap het nu.

Dus als ik het goed begrijp, moet ik variabelen die alleen IN de class gebruikt mogen worden, private maken. of protected? maakt niet uit welke? en public is voor beide. En global is goor, want dat pushed het alle scripts en functies in. toch?


Als die variabele alleen voor de betreffende klasse is, zou ik hem private maken. (ook al bestaan daar meningsverschillen over)

Als je met overerving gaat werken en je wilt dat het bovenliggende object de variabele rechtstreeks mag aanspreken en wijzigen, zou ik hem protected maken.
Een andere oplossing hiervoor kan ook zijn dat je de variabele private houd, en een public function maakt waarin je de variabele kan setten en getten.

Global pushed niet! maar het is wel overal beschikbaar.

Php is niet echt een OOP taal die daar nauwkeurig mee omgaat. Om te begrijpen hoe OOP werkt kan je misschien beter refereren naar JAVA omdat java volledig OOP is, en wel heel strak omgaat met public, private en protected.
Ligt er gewoon aan waarom je de functie wilt gebruiken.
Bot weg gezegt:
public -> In je script, dus waar je het object hebt aangmaakt
protected -> Als je denkt dat de class wordt ge-extend en je deze functie daar ook handig gaat zijn
private -> Als de functie enkel in class kan worden gebruikt

Variable geld hetzelfde.
ah.... nou, het enige wat ik wil, is dat als ik een class maak, dat vars die in die class horen, daarin blijven. Want, waarom zou je meerdere classes maken? 1 is toch genoeg?
Is het zo moeilijk te bedenken? Overerving betekent dat een bepaalde klasse *overerft* van een andere. Het *is* dus ook die klasse. Geef mij eens een voorbeeld waarin een kindklasse zijn eigen waardes niet mag bewerken?
Ik heb geen idee wat je bedoeld...
Wel weer een vraag. als je vars wilt gebruiken in je class.. moet je dan alle vars die je gebruikt eerst aangeven bovenaan de class? of is dit niet nodig? of is dit niet nodig, maar wel de nette manier om iets te doen?

Reageren