Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Primo script

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2015
    Messaggi
    26

    Primo script

    Ciao a tutti,
    sono agli inizi del corso di PHP e smanioso di iniziare a scrivere codice...
    Dopo aver configurato il mio computer con Apache, PHP e MySQL stoiniziando a mettere in pratica le nozioni apprese nel tutorial.

    "Ovviamente" non funziona e non capisco il perché. Ribadisco che sono un 'beginner' ed apprezzerò la vostra pazienza.
    Grazie in anticipo a ciascuno di voi.

    il primo script è il seguente:

    <?php
    $a = 5;
    $b = 3;
    $somma = 0;
    function somma($a, $b) {
    $somma = $a + $b;
    return $somma;
    }
    function stampa_somma($somma) {
    echo "La somma e' pari a " . $somma;
    }
    stampa_somma($somma);
    ?>

    Mi sarei aspettato un bel "8" come risultato! invece mi sono beccato "0" :-(
    Dove ho toppato?

  2. #2
    Utente di HTML.it L'avatar di Sei
    Registrato dal
    Oct 2016
    Messaggi
    37
    Molto semplicemente chiami la funzione stampa_somma, dove effettui il print a video del contenuto della variabile somma, passato come parametro, ma non chiami la funzione dove effettui la somma.
    Prima di stampa_somma($somma) devi chiamare somma($a,$b);

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Tu chiami
    stampa_somma($somma);
    e $somma è appunto pari a 0 perché prima scrivi
    $somma = 0;

    Non chiami mai la funzione somma() alla quale ricordati che dovrai passare esplicitamente le variabili $a e $b, non se le prende da sola.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2015
    Messaggi
    26
    ciao buongiorno,
    grazie per le risposte.

    ho modificato il codice in questo modo:

    <?php
    $a = 5;
    $b = 3;
    $somma = 0;
    function somma($a, $b) {
    $somma = $a + $b;
    return $somma;
    }
    function stampa_somma($somma) {
    echo "La somma e' pari a " . $somma;
    }
    somma($a,$b);
    stampa_somma($somma);
    ?>
    ma il risultato continua ad essere 0

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    La tua funzione somma($a,$b) ritorna un valore, ma tu non lo assegni a nessuna variabile.
    La variabile $somma che sta all'inizio e quella dentro la funzione, sono 2 variabili distinte, anche se le hai chiamate allo stesso modo.
    Il motivo è lo stesso per cui alla funzione somma() passi $a e $b come parametri e per cui passi $somma alla funzione stampa_somma(), se fossero visibili all'interno della funzione non ce ne sarebbe bisogno.

    Giusto per un'infarinatura iniziale, ti propongo questo articolo: scope delle variabili

    Quindi dove adesso hai somma($a, $b) dovrai scrivere
    $somma = somma($a,$b);

    in questo modo modifichi il valore della tua variabile $somma che hai all'inizio.

    Mi raccomando, leggilo l'articolo.
    Ultima modifica di Alhazred; 02-02-2018 a 10:18

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2015
    Messaggi
    26
    Grazie mille

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 © 2024 vBulletin Solutions, Inc. All rights reserved.