• Login
  • Register
  • Zoek
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Filebase Entry
  • More Options

ICTscripters

Dé plek voor IT

Dé plek voor IT

Login

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  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
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  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
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  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
  9. Goedkope domeinnamen
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. PHP + SQL

Forum

  • Beta-testers gezocht voor Crypto-oefenplatform

    Syntax 29 januari 2026 om 16:11
  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Syntax 19 januari 2026 om 09:34
  • Developer Gezocht

    Mikevdk 10 januari 2026 om 18:57
  • Op zoek naar de legends

    Syntax 5 januari 2026 om 13:50
  • [FREE] WeFact Hosting module

    Jeroen.G 13 oktober 2025 om 14:09
  • Help testers nodig voor android app Urgent

    urgentotservices 26 september 2025 om 10:21
  • Versio vervanger

    Jeroen.G 25 augustus 2025 om 15:56
  • Afspraken systeem met planbeperking

    Lijno 1 augustus 2025 om 23:04

Marktplaats

  • 321 Nieuwe Domeinnamen December 2025

    shiga 1 januari 2026 om 10:26
  • Meerdere mafia game template te koop

    Syntax 26 december 2025 om 00:07
  • Van een pixelige afbeelding naar een strakke, moderne website

    Syntax 21 december 2025 om 17:05

OOP Static

  • Patrick
  • 8 februari 2010 om 12:02
  • Closed
  • Patrick
    Back in the game
    Ontvangen Reacties
    52
    Berichten
    1.417
    • 8 februari 2010 om 12:02
    • #1

    Hey mensen,

    ik heb even een vraag over de 'static' functie van OOP programmatie in PHP.

    Ik snap de bedoeling er gedeeltelijk nu van. Wanneer je een variable static mee geeft:

    PHP
    public static $pTo = 0.45359237;

    wordt hij onthouden en als je hem dan ergens anders verandert in de class en je maakt daarna een andere variable aan die de zelfde klass gebruikt:

    PHP
    $a = new a();
    $b = new a();

    blijft de veranderde variable het zelfde (is dat $pTo bijv. de eerste x bij het aanmaken verandert in 0.5 wordt bij het aanmaken van $b niet weer terug gezet naar 0.45359237)

    Maar dan mijn vraag want is het nut van static te gebruiken met een method dat heb ik nog niet kunnen vinden en ook niet uit het boek waar ik van uit het leren ben (PHP Objects Oriented Solutions)

  • NielsB
    Junior (Web)Developer
    Berichten
    948
    • 8 februari 2010 om 12:25
    • #2

    Wil je misschien je code even tonen?

    En een goed voorbeeld is:

    PHP
    function test()
    {
        static $n = 1;
        echo $n .'<br />';
        $n++;
    }


    Wanneer jij nu het volgende doet:

    PHP
    test();
    test();
    test();

    Wat dit nu doet is hij onthoud het opgegeven getal dus hij begint op 1 en daarna 2 en daarna 3 ;)
    Snap je ongeveer de bedoeling.

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.

    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML

    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

  • Patrick
    Back in the game
    Ontvangen Reacties
    52
    Berichten
    1.417
    • 8 februari 2010 om 13:29
    • #3

    ah zo ja ik snap hem nu thx :)
    en ik heb geen code ik ben via het boek de basis begrippen aan het uitzoeken aangezien ik al wel eerder met OOP heb gewerkt maar nooit de basis begrippen heb uitgeprobeerd heb gelezen en heb begrepen ;)

    daarnaast nog even de vraag over __autoload functie ik snap deze functie wel maar ik vraag me af of hij wel van nut is als je maar 2 classes of iets meer gebruikt.

    Lijkt me juist handiger als je stuk of 40 classes hebt en als je die door middel van een loop wilt includen, hoe sstaan jullie daar tegen over?

  • Darsstar
    Vreemd
    Berichten
    1.173
    • 8 februari 2010 om 14:32
    • #4

    Voor maar een paar classes is __autoload() overkill (met [func]spl_autoload_register[/func] kun je er meerdere registreren, zo kunnen er dus Kohana, Zend en Swift Mailer autoloaders tegelijk bestaan)

    Een statische class variable is erg handig voor het Singleton pattern.
    Je wilt dan maar één instantie van een bepaald object hebben.
    Oplossing:

    PHP
    class Singleton {
    
    
        protected static $_instance;
    
    
        public static instance()
        {
            if ( ! self::$_instance)
            {
                self::$_instance = new self();
            }
    
    
            return self::$_instance;
        }
    
    
        protected function __construct()
        {
            // Deze method is protected zodat het alleen van binnen deze class kan worden aangeroepen.
        }
    
    
        private function __clone() {} // Voorkom cloning
    }
    Toon Meer


    Maar als je bijvoorbeeld wilt dat een method maar een keer wordt uitgevoerd dan is er geen enkele reden om dat in een statische class variable op te slaan, tenzij andere methods dit moeten weten.
    Een statische variable binnen de method zelf is dan voldoende.
    Het zijn twee verschillende beesten. (Heb ik nu een engelse uitspraak vertaald, of ...?)

    miauw!

  • Patrick
    Back in the game
    Ontvangen Reacties
    52
    Berichten
    1.417
    • 8 februari 2010 om 16:52
    • #5

    Dus bijv kan je static gebruiken als je wilt connecten naar een database met bijv:

    PHP
    static public function SqlConnect ()

    dat zorgt ervoor dat ik daarna deze functie niet nog een keer kan uitvoeren?

  • Darsstar
    Vreemd
    Berichten
    1.173
    • 8 februari 2010 om 17:07
    • #6

    Nee...

    PHP
    public function SqlConnect ()
    {
        static $run = FALSE;
    
    
        if ($run)
            return; // misschien wil je een statische class variable returnen, maar dan kan je waarschijnlijk beter controleren op die variable...
    
    
        $run = TRUE;
    
    
        // code hier
        // misschien nog iets returnen?
    }
    Toon Meer

    Zo voorkom je dat...

    Het leuke van classes gebruiken is dat je meerdere instanties van die class kunt hebben.
    Als je dan een (niet statische) eigenschap in de ene instantie veranderd heeft dat geen enkel effect op de andere instantie.
    Maar soms wil je dat als je een eigenschap veranderd het juist wel effect heeft op alle andere instanties!
    Daar zijn statische variablen heel goed voor! (er zijn natuurlijk ook minder mooie manier te verzinnen)

    miauw!

Participate now!

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

Maak een account aan Login

ICT Nieuws

  • Fijne feestdagen

    tcbhome 28 december 2025 om 13:55
  • Kritieke update voor Really Simple Security-plug-in

    K.Rens 16 november 2024 om 16:12
  • ING Nederland streeft naar ondersteuning van Google Pay tegen eind februari

    K.Rens 2 november 2024 om 16:09

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
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacy Policy
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