Visualizzazione risultati 1 fino 6 di 6

Discussione: Scope delle variabili

  1. #1
    L'avatar di Greenant
    Greenant non è connesso Altervistiano Junior
    Data registrazione
    11-05-2002
    Messaggi
    687

    Predefinito Scope delle variabili

    Ho un dubbio atroce e cercando i giro non sono riuscito a risolverlo.

    Sto riscrivendo il sito e praticamente ho tutte le pagine fatte in php. Queste pagine includono un file comune, chiamamolo "base.php"

    In questo file sono definite alcune variabili stringa ed una funzione che crea la struttura del file html e come parametro prende una variabile $contenuto

    il file generico .php è quindi fatto così

    Codice:
    <?
    include "./base.php";
    $contenuto = "blah blah blah";
    print(mostra_pagina($contenuto));
    ?>
    dove mostra_pagina è la funzione di creazione del sito definita in base.php

    Dentro la funzione mostra_pagina() non vengono viste le variabili definite nel corpo di base.php

    Esiste il concetto di variabile globale in php?
    Se si, come si fa a definirle?
    There's always one more bug.

  2. #2
    L'avatar di silverseraph
    silverseraph non è connesso AlterGuru
    Data registrazione
    27-04-2005
    Residenza
    Localhost
    Messaggi
    1,104

    Predefinito

    Certo, ecco un banale esempio:
    Codice PHP:
    $a = "ciao";
    function (
    $b)
    {
    global
    $a;
    if (
    $a == "ciao")
    $c = $b;
    return
    $c;
    }

  3. #3
    L'avatar di Greenant
    Greenant non è connesso Altervistiano Junior
    Data registrazione
    11-05-2002
    Messaggi
    687

    Predefinito

    Non sapevo di dovere definire esplicitamente all'interno della funzione le variabili globali che voglio usare
    There's always one more bug.

  4. #4
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Faccio una precisazione: il codice all'interno di base.php viene meccanicamente copiato all'interno del file con la direttiva include. Pertanto se questo consiste in codice semplice (cioè non funzioni), le variabili utilizzate dovrebbero essere visibili. Se invece il file contiene funzioni, ricordati la regola: una variabile "nasce" all'interno di una parentesi graffa, "vive" in tutti i possibili sottoblocchi delimitati da altre parentesi graffe, e "muore" con la parentesi graffa corrispondente al blocco dove è stata dichiarata la prima volta.

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  5. #5
    L'avatar di Greenant
    Greenant non è connesso Altervistiano Junior
    Data registrazione
    11-05-2002
    Messaggi
    687

    Predefinito

    Io conosco il C e non il PHP

    Traducendo il mio codice in C sarebbe del tipo

    Codice:
    char lingua[32];
    
    void mostra_pagina()
    {
       printf(lingua);
       return;
    }
    Da quello che ho capito, per fare vedere la variabile lingua (definita all'esterno di tutte le funzioni) dentro la funzione mostra_pagina(), devo scrivere
    global lingua;
    all'interno della funzione mostra_pagina().

    C'è un modo più rapido che non mi costringe a dovere definire esplicitamente all'interno di ogni funzione le variabili globali che voglio utilizzare?
    There's always one more bug.

  6. #6
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Potresti utilizzare l'array $GLOBALS che contiene al suo interno tutte le variabili.
    Codice PHP:
    $a = "ciao";
    function (
    $b)
    {
    if (
    $GLOBALS['a'] == "ciao")
    $c = $b;
    return
    $c;
    }
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •