1. #1
    KingOfWoods's Avatar
    Registered
    28/07/02
    Location
    Gent
    Posts
    2,195
    iTrader
    19 (91%)
    Mentioned
    0 Post(s)
    Reputation
    0/144

    knop drukken counter--; werkt niet

    Code:
    if(isset($_POST['submit'])) {
    	launchAngryBird();
    }
    
    function launchAngryBird(){
    	static $counter = 8;
    	
    	echo $counter;
    	$counter--;
    }
    Het zal waarschijnlijk iets dom zijn, maar telkens ik op mijn submit druk krijg ik "8" geëchood. Ik veronderstelde dat het 8 7 6 5 4 3 2 1 enz zou geven bij elke druk, maar hij blijft dus 8. Iemand een idee?

    thx
    no votes  

  2. #2
    Dieterg's Avatar
    Registered
    08/01/05
    Location
    Turnhout
    Posts
    1,182
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    9/9
    Logische fout toch ze! Je gaat die variable telkens opnieuw declareren bij het aanroepen van uw functie. Je moet die variable dus buiten uw functie declareren.
    -
    no votes  

  3. #3
    YaMo's Avatar
    Registered
    19/02/06
    Location
    -
    Posts
    4,048
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    2/73
    Quote Originally Posted by Mam View Post
    This quote is hidden because you are ignoring this member. Show
    Logische fout toch ze! Je gaat die variable telkens opnieuw declareren bij het aanroepen van uw functie. Je moet die variable dus buiten uw functie declareren.
    Dat gaat volgens mij ook niet werken. Elke keer je op de knop drukt gaat dat script opnieuw uitgevoerd worden en die variabele dus weer op 8 gezet worden.
    Voor zulke dingen moet je een sessie ofzo gebruiken.

    edit:
    En blijkbaar zorgt het static keyword ervoor dat die declaratie alleen de eerste keer uitgevoerd wordt, waardoor het dus sowieso niet nodig is de variabele buiten de function te declareren.
    http://php.net/manual/en/language.va...s.scope.static
    Last edited by YaMo; 02-06-2012 at 16:16.
    no votes  

  4. #4
    Dieterg's Avatar
    Registered
    08/01/05
    Location
    Turnhout
    Posts
    1,182
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    9/9
    Quote Originally Posted by YaMo View Post
    This quote is hidden because you are ignoring this member. Show
    Dat gaat volgens mij ook niet werken. Elke keer je op de knop drukt gaat dat script opnieuw uitgevoerd worden en die variabele dus weer op 8 gezet worden.
    Voor zulke dingen moet je een sessie ofzo gebruiken.
    Idd, dat is ook waar :-). Ik zal eens een voorbeeldje maken om men foutje goed te maken .

    edit: van die static, dat wist ik niet.
    edit2: Zoiets dus:
    PHP Code:
    <?php
    session_start
    ();
    if(! isset(
    $_SESSION["getal"])) {
        
    $_SESSION["getal"] = 8;
    }


    if(isset(
    $_POST["submit"])) {
        
    launchAngryBird();
    }

    function 
    launchAngryBird() {
        echo 
    $_SESSION["getal"];
        
    $_SESSION["getal"]--;
    }
    ?>
    Last edited by Dieterg; 02-06-2012 at 16:22.
    -
    no votes  

  5. #5
    KingOfWoods's Avatar
    Registered
    28/07/02
    Location
    Gent
    Posts
    2,195
    iTrader
    19 (91%)
    Mentioned
    0 Post(s)
    Reputation
    0/144
    Merci mannen. In Sessions ben ik nog niet zo thuis. Opleiding PHP aan het volgen voor de moment en we zijn net bij static en global vars terecht gekomen.

    Die knop hebben we nog niet gezien, het was eigenlijk de bedoeling dat we die functie gewoon lieten lopen bij het starten van de pagina, maar ik had graag wat meer controle ingebouwd dat ik beter voor mijn eigen kan volgen wanneer nu juist wat plaats vindt.

    Merci alleszins.
    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