Thread: php en OO

  1. #1

    Registered
    27/07/10
    Location
    Limburg
    Posts
    60
    iTrader
    0
    Mentioned
    0 Post(s)

    php en OO

    Ik heb een vraagje ivm het correct gebruik van OO in PHP.
    Omdat ik voornamelijk in Java programmeer is het logisch dat ik volgens het volgend principe werk:

    Bijvoorbeeld:
    Huis h = new Huis();
    h = DataHuis.getHuis(125);

    Nu ben ik al een tijdje in php bezig en het valt me op dat het daar minder strikt zit, dus als ik gewoon zeg

    $h = DataHuis.getHuis(125);
    echo $h->kleur //geeft bijvoorbeeld rood

    Nu kwam ik overlaatst een script tegen waar men ook eerst deed

    $huis = new Huis();
    en dan
    $h = DataHuis.getHuis(125);
    echo $h->kleur //geeft bijvoorbeeld rood

    Nu lijkt mij die declaratie in PHP overbodig omdat het zonder ook werkt, ben ik juist hierin? Ik zou namelijk zeker willen weten dat ik op een propere manier werk? (gezien je in php geen vars hoeft te declareren lijkt het mij van wel?)
    no votes  

  2. #2

    Registered
    25/08/05
    Posts
    68
    iTrader
    0
    Mentioned
    0 Post(s)
    Wat je hier ziet heeft niets met OO te maken, maar eerder met het feit dat PHP niet "typed" is (of Duck-typed). Een variabele kan "eender wat" zijn, en op het moment dat er iets aan toegekend wordt, wordt het type ook gezet.

    In je laatste voorbeeld hierboven is die "$h = new Huis();" zelfs slecht, want het gaat een object maken, en dit meteen terug weggooien en vervangen door de waarde van je DataHuis->getHuis() factory. Nutteloos: memory en cpu-cycles (en programmeur-keystrokes) verspild.

    (Trouwens, in je java-voorbeeld is de "new Huis()" ook nutteloos, het enige wat telt is "Huis h", die zegt dat de variabele h vanaf nu enkel huizen kan bevatten.)
    Last edited by wonko; 27-07-2010 at 08:23. Reason: $ vergeten
    Nietske
    no votes  

  3. #3

    Registered
    27/07/10
    Location
    Limburg
    Posts
    60
    iTrader
    0
    Mentioned
    0 Post(s)
    Quote Originally Posted by wonko View Post
    This quote is hidden because you are ignoring this member. Show
    Wat je hier ziet heeft niets met OO te maken, maar eerder met het feit dat PHP niet "typed" is (of Duck-typed). Een variabele kan "eender wat" zijn, en op het moment dat er iets aan toegekend wordt, wordt het type ook gezet.

    In je laatste voorbeeld hierboven is die "$h = new Huis();" zelfs slecht, want het gaat een object maken, en dit meteen terug weggooien en vervangen door de waarde van je DataHuis->getHuis() factory. Nutteloos: memory en cpu-cycles (en programmeur-keystrokes) verspild.

    (Trouwens, in je java-voorbeeld is de "new Huis()" ook nutteloos, het enige wat telt is "Huis h", die zegt dat de variabele h vanaf nu enkel huizen kan bevatten.)
    dat moest ik weten, bedankt.
    new Huis() is idd in Java ook overbodig als je er direct een waarde aan toekent, had ik moeten weten.

    in ieder geval bedankt.
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in