Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Varibili global

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    29

    Varibili global

    Ciao io sto provando a capire come funzionano le variabili globali e le function in php .
    Essendo abiutato a c# mi trovo un po spiazzato...vi mostro il pezzo di codice:

    <?php
    global $var1; //dichiaro la variabile pubblica

    function riempi($var1){ //assegno un valore
    $var1=1;
    }

    riempi($var1); //richiamo metodo

    function Somma($var1){ //Incremento valore
    $var1 += 1;
    }
    $conta=0;
    while($conta!=3){ //semplice ciclo per incrementare il valore
    Somma($var1);
    $conta++;
    }

    echo $var1;
    ?>

    dove sbaglio?
    Grazie!

  2. #2
    Sbagli qui:
    codice:
    global $var1; //dichiaro la variabile pubblica
    si dichiara l'ACCESSO a una variabile globale (una variable e' automaticamente globale se non e' locale a qualche funzione), non la variabile stessa. Vedi il manuale a questa pagina: http://uk.php.net/manual/en/language...bles.scope.php

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    29
    risolto anche se però non mi è ancora molto chiaro!

    <?php
    $var1;
    function riempi(){
    global $var1;
    $var1=1;
    }

    riempi();

    function Somma(){
    global $var1 ;
    $var1 += 1;
    }
    $conta=0;
    while($conta!=3){
    Somma();
    $conta++;
    }

    echo $var1;
    ?>

    per cui io dichiaro una variabile fuori dai metodi e per accedere al suo valore all'interno dei metodi specifico che è di tipo global all'interno di ciascun metodo ?
    Grazie!

  4. #4
    Originariamente inviato da ducati65
    per cui io dichiaro una variabile fuori dai metodi e per accedere al suo valore all'interno dei metodi specifico che è di tipo global all'interno di ciascun metodo ?
    Grazie!
    Piu' o meno. Intanto in PHP non esiste il concetto di dichiarazione di una variabile (giacche' non si definisce il tipo) separato dalla sua definizione, quindi un'istruzione come
    codice:
    $var1;
    benche' sintatticamente legale non si usa, perche' si associa sempre un valore (anche se vuoto):
    codice:
    $var1 = 0; // se la variabile conterra' un numero
    $var1 = ''; // se la variabile conterra' una stringa
    ovviamente distinguere il caso numerico da quello stringa e' solo una buona norma di comportamento, non e' richiesto dal linguaggio ne' il tipo viene poi forzato.

    Inoltre - parlando strettamente di sintassi - non definisci una variabile "di tipo global", istruisci solo l'interprete che all'interno di quella funzione o metodo vuoi accedere alla variabile di nome $var1 definita nello scope globale: in sostanza non e' una definizione ma una direttiva per definire lo scope (le variabili definite nello scope globale sono globali automaticamente).

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    29
    Molto chiaro e grazie per la risposta!

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.