• Inloggen
  • Registreer
  • Zoeken
Dit topic
  • Overal
  • Dit topic
  • Dit forum
  • Artikelen
  • Pagina's
  • Forum
  • Downloads
  • Meer opties

ICTscripters

Dé plek voor IT

Dé plek voor IT

Aanmelden

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. PHP + SQL

Forum

  • Herkent deze Notion-structuurscan echte problemen?

    FreelanceAP 6 oktober 2026 om 16:48
  • 🚀 WE ZOEKEN TESTERS! 🚀

    Servertjee 3 oktober 2026 om 10:56
  • Port Father: beta van een browsergame in Antwerpen 1931, feedback welkom

    Syntax 1 oktober 2026 om 11:11
  • Luchtvaartsoftware: Hoe technologie de moderne luchtvaart verandert

    saggy2829 30 september 2026 om 19:31
  • Hoe gebruiken jullie WhatsApp voor marketing en klantopvolging?

    aiqanobzfsej5 29 september 2026 om 12:55
  • [PROJECT] Gamekeuring.nl - Hét onafhankelijke keuringsplatform voor maffiagames & RPG's!

    frio 22 september 2026 om 16:40
  • Ictscripters / Koen

    Aaron 22 september 2026 om 15:07
  • Kweekrijk - van stekje tot Imperium

    Lijno 14 september 2026 om 23:00

Marktplaats

  • Verschillende domeinen te koop (sommige hebben website / content)

    frio 2 oktober 2026 om 14:45
  • 295 Nieuwe Domeinnamen September 2026

    shiga 1 oktober 2026 om 19:09
  • Straatbaas.eu – complete Nederlandstalige en Engelstalige online maffia-RPG

    Jeroen.G 1 oktober 2026 om 17:48

Nieuw met classes

  • Jackie
  • 10 november 2010 om 22:52
  • Jackie
    Hardstyle
    Berichten
    224
    • 10 november 2010 om 22:52
    • #1

    Ik ben beginner met classen en wil dat dan gaan leren.
    Ik heb deze class gemaakt, maar hij doet niet wat ik wil.

    PHP
    class Login
    {
        private $_nickname;
        private $_password;
        
        public function __construct($nickname, $password)
        {
            $this->_nickname = $nickname;
            $this->_password = $password;
        }
        
        public function getNickname()
        {
            return $this->_nickname;
        }
        
        
    }
    Meer tonen

    En zo moet ie werken

    PHP
    $login = new Login("Jackie", "xxxx");
    
    
    $login->getNickname();

    Dat moet ie toch Jackie uitspugen lijkt me, maar dat doet ie niet.

    Wat doe ik fout?

    Bezig met een zelf gemaakte source, geschreven vanaf 0 natuurlijk!

  • Gast, wil je besparen op je domeinnamen? (ad)
  • Rahl
    Gevallen leider
    Berichten
    114
    • 10 november 2010 om 22:57
    • #2
    PHP
    $login = new Login("Jackie", "xxxx"); 
    
    
    echo $login->getNickname();

    Waarom noem je je class niet gewoon "User"? Dat is veel generieker dan Login.
    En waarom gebruik je niet in plaats van getNickname() de magic method __get()?

    [offtopic]Oops, sorry voor het ervan uitgaan dat het logisch voor je lijkt, lees nu net pas dat je net begonnen was[/offtopic]

  • Jackie
    Hardstyle
    Berichten
    224
    • 10 november 2010 om 23:00
    • #3

    Omdat ik nieuwe ben met classen en ALLES WIL LEREN.

    En hoe roep ik de functie __get() aan dan?

    Bezig met een zelf gemaakte source, geschreven vanaf 0 natuurlijk!

  • Superior
    Meester
    Berichten
    1.947
    • 10 november 2010 om 23:04
    • #4

    http://nl2.php.net/manual/en/language.oop5.magic.php

  • Rahl
    Gevallen leider
    Berichten
    114
    • 10 november 2010 om 23:04
    • #5
    PHP
    class Login 
    { 
        private $_nickname; 
        private $password; 
         
        public function __construct($nickname, $password) 
        { 
            $this->_nickname = $nickname; 
            $this->password = $password; 
        } 
         
        public function __get($property) 
        { 
            return isset($this->{"_" + $property}) ? $this->{"_" + $property} : null;
        }
         
         
    }
    Meer tonen
    PHP
    $login = new Login("Jackie", "xxxx"); 
    
    
    echo $login->nickname;
  • Jackie
    Hardstyle
    Berichten
    224
    • 10 november 2010 om 23:31
    • #6

    Hm ik snap niet waarom die "_" enzo er bij horen, maar is het fout dan om getNickname() te gebruiken?

    Bezig met een zelf gemaakte source, geschreven vanaf 0 natuurlijk!

  • Rahl
    Gevallen leider
    Berichten
    114
    • 10 november 2010 om 23:47
    • #7

    Die underscore heb ik gedaan zodat je niet bij het wachtwoord kunt. Het is niet heel erg om getNickname te gebruiken, maar als je 10 properties van een gebruiker hebt die je public wilt kunnen aanroepen, wordt je code heel wat overzichtelijker door al dat soort methoden in één get methode te zetten.

  • Stefan.J
    Meester
    Berichten
    2.358
    • 11 november 2010 om 00:31
    • #8

    Rahl: Eigenlijk niet. Private properties zijn private omdat niet iedereen er zomaar bij mag kunnen. Als je vervolgens een magic getter maakt kun je net zo goed geen visibility gebruiken. Daarbij kun je aan een gewone getter de return type defineren waardoor je IDE ook nog snapt wat je aan het doen bent. Daarbij wordt ook nog eens niet je hele code afhankelijk van de namen van de properties.

    Kortom: de magic getter is niet voor niets iets wat in heel weinig programmeertalen mogelijk is. Het is leuk bedacht, maar in de meeste gevallen niet zinvol. Alleen wanneer je datawrappers en weet ik het wel niet allemaal gaat maken, kun je hier je voordeel uithalen.

  • Rahl
    Gevallen leider
    Berichten
    114
    • 11 november 2010 om 15:14
    • #9
    Citaat van Killingdevil

    Rahl: Eigenlijk niet. Private properties zijn private omdat niet iedereen er zomaar bij mag kunnen. Als je vervolgens een magic getter maakt kun je net zo goed geen visibility gebruiken. Daarbij kun je aan een gewone getter de return type defineren waardoor je IDE ook nog snapt wat je aan het doen bent. Daarbij wordt ook nog eens niet je hele code afhankelijk van de namen van de properties.

    Kortom: de magic getter is niet voor niets iets wat in heel weinig programmeertalen mogelijk is. Het is leuk bedacht, maar in de meeste gevallen niet zinvol. Alleen wanneer je datawrappers en weet ik het wel niet allemaal gaat maken, kun je hier je voordeel uithalen.


    Ik dacht dat het met getters juist de bedoeling was de variabelen 'read-only' te maken...

  • Stefan.J
    Meester
    Berichten
    2.358
    • 11 november 2010 om 17:26
    • #10
    Citaat

    Ik dacht dat het met getters juist de bedoeling was de variabelen 'read-only' te maken...

    Klopt, maar als jij een class hebt met 10 properties wil je die meestal niet allemaal leesbaar maken. Daarbij is het al vreemd als je 10 properties in je class hebt (het is mogelijk, maar komt niet vaak voor).

Registratie

Nog geen account? Registreer je nu en word deel van onze community!

Nu registreren Aanmelden

Blogs

  • Functioneel ontwerp

    Dees 28 december 2014 om 12:38
  • Access Control List implementatie in PHP/MySQL - deel 1/2

    FangorN 28 december 2018 om 12:35
  • Access Control List implementatie in PHP/MySQL - deel 2/2

    FangorN 29 december 2018 om 12:37

Gebruikers die dit topic bekijken

  • 1 Gasten
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacyverklaring
  10. Contact
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen | Beste Zetes eid kaartlezer webshop
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design