Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269

    tabellina del 2 con for e foreach

    Salve qualcuno può spiegarmi riga per riga il seguente codice

    <?php

    $a = 1;

    for ($i = 0; $i < 10; $i++ )
    {
    $tabellina = array($a++);

    foreach ($tabellina as $valore) {

    $valore = $valore * 2;
    echo $valore;
    echo "
    ";

    }
    }

    ?>


    Se provate a stamparlo a video vedete che stampa anche il 2... ma non riesco a capire il perchè
    Grazie!
    Con i sogni possiamo conoscere il futuro...

  2. #2

    Re: tabellina del 2 con for e foreach

    Funziona, anche se è una porcata.........


    <?php

    $a = 1;

    for ($i = 0; $i < 10; $i++ ) // Esegue le operazioni di cui sotto per 10 volte
    {
    $tabellina = array($a++); // Crea un array di un solo elemento di valore pari ad 'a', e poi incrementa 'a'

    foreach ($tabellina as $valore) { // Per ogni elemento dell'array (che è solo uno....)

    $valore = $valore * 2; // Raddoppia il valore
    echo $valore; // Lo stampa
    echo "
    ";

    }
    }

    Per cui hai 10 cicli con le seguenti variabili

    1. i=0 a=1 valore=2
    2. i=1 a=2 valore=4
    3. i=2 a=3 valore=6
    4. i=3 a=4 valore=8
    5. i=4 a=5 valore=10
    6. i=5 a=6 valore=12
    7. i=6 a=7 valore=14
    8. i=7 a=8 valore=16
    9. i=8 a=9 valore=18
    10. i=9 a=10 valore=20

  3. #3
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    Però a incrementa di 1 all'interno del FOR giusto? e poi raddoppia.. come fa a stampare 2?...
    e poi un'altra domanda "$valore" ha lo stesso valore di "$a"? ovviamente raddopiato?
    Con i sogni possiamo conoscere il futuro...

  4. #4
    Originariamente inviato da gaten
    Però a incrementa di 1 all'interno del FOR giusto? e poi raddoppia.. come fa a stampare 2?...
    e poi un'altra domanda "$valore" ha lo stesso valore di "$a"? ovviamente raddopiato?
    No, i valori sono quelli che ti ho scritto sopra.
    Al primo ciclo a vale 1. tabellina prende il valore di a (1) che DOPO l'assegnazione viene incrementato a 2. valore prende il valore di tabellina (1) e poi viene raddoppiato -> 2.

  5. #5
    Ma a che serve sta roba?

  6. #6
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    Ho capito... be mi serve perchè sto alle prime armi ... e ancora grazie
    Con i sogni possiamo conoscere il futuro...

  7. #7
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da gaten
    Però a incrementa di 1 all'interno del FOR giusto? e poi raddoppia.. come fa a stampare 2?...
    Perché PRIMA assegna il valore originario di $a (la prima volta quindi 1) all'unico elemento dell'array $tabellina, e solo DOPO $a diventa 2.

    Se sostituisci $a++ con ++$a avrai il comportamento che ti aspettavi tu.

    A titolo informativo, come ha detto filippomm quel codice è un'oscenità. Lo stesso risultato lo puoi ottenere in modo molto più semplice
    Codice PHP:
    for ($a=1$a<=10$a++) echo $a*2,'
    '

    Edit: lo so, sono lento

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.