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?
oke.. dan is dit een algemeen vragen topic... sorry daarvoor.. Ik vond het gewoon stom om voor elk kleine vraagje een topic aan te maken.
Een klein vraagje kan tot een groot antwoord of misschien een discussie leiden. En kan later gelezen worden door mensen met dezelfde vraag.

Maar als je de tutorial doorleest die Jelmer al noemt kon je al een heel eind.
Why do we need a Constructor?
It is needed as it provides an opportunity for doing necessary setup operations like initializing class variables, opening database connections or socket connections, etc. In simple terms, it is needed to setup the object before it can be used.

"opening database connections"
Hoe werkt dit dan? Hoe roep ik een database connectie aan in een class? dat zie ik namelijk nergens staan....
Jelmer schreef op 27.01.2010 21:25
Wat is er mis met een nieuw topic openen?! Nu zijn de posts hierboven allemaal nutteloos geworden omdat de vraag weg is...

http://phptuts.nl/view/45/5/


Met hem.
wesley schreef op 27.01.2010 18:31
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?


global (zonder private, protected, public) : $var = 'foo';
is voor de hele package bruikbaar. Packages worden niet gebruikt in PHP, misschien dat iemand zo snel weet of het namespace afhankelijk kan zijn.

private $private = 'hidden4all'; is alleen voor het eigen object bruikbaar
protected: $protected = 'objects_and_extends'; voor het eigen object en extends
public: $public = '4all'; is voor alles en iedereen zichtbaar.

Het advies is vaak om alles/zo veel mogelijk private te maken, en public getters te maken.
Maar ik las juist ergens: Private is evil.

En ik snap de constructor nog steeds niet. Wat ik probeer te bereiken is dat ik bij het aanmaken van de class de keuzen heb of ik al een waarde meegeef of niet. Zoals een database connectie zou wel fijn zijn. Al heb ik geen idee hoe ik dat doe.

EDIT:
ik denk dat ik er wel achter ben, als ik het zo lees.
klopt dit dan:

in de functie, van de constructor, zet ik als waarden, wat er door de class meegegeven word. het is vroeg ik ben moe dus ik geef de uitleg anders:


<?php
class User {
  private $_username;

  public function __construct($name) {
    $this->_username = $name;
  }

  public function getUsername() {
    return $this->_username;
  }
}

$user = new User('jan'); //Dus wat ik hier invul, is de $name in de  __construct($name); ?
echo $user->getUsername();
?> 


en als ik nou:

<?
$user = new User();
?>

zou doen? Wat doet de constructor dan?
waar las je dat private evil is?

Waardes die je niet altijd mee geeft kun je een defaullt value geven.

public __construct($name,$level = 1)....
inderdaad volgende x nieuw topic aanmaken, ik lees de vraag en de eerste paar antwoorden gaan over het zoeken in arrays, erg verwarrend,

een constructor geef je de info mee die absoluut noodzakelijk zijn, zoals bv een database object voor de mysql connectie,

$db = new Database();
$cla = new Classe($db);

kan je prima doen
wesley schreef op 28.01.2010 09:30
Maar ik las juist ergens: Private is evil.

En ik snap de constructor nog steeds niet. Wat ik probeer te bereiken is dat ik bij het aanmaken van de class de keuzen heb of ik al een waarde meegeef of niet. Zoals een database connectie zou wel fijn zijn. Al heb ik geen idee hoe ik dat doe.


Private is het beste te gebruiken. Deze kan je met een public get_x functie ophalen. Wie zegt dat private evil is, snapt het denk ik niet.

Een constructor wordt gebruikt om het object aan te maken.

Reageren