-
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?
-
Certo, ecco un banale esempio:
Codice PHP:
$a = "ciao";
function ($b)
{
global $a;
if ($a == "ciao")
$c = $b;
return $c;
}
-
Non sapevo di dovere definire esplicitamente all'interno della funzione le variabili globali che voglio usare
-
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...
-
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?
-
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;
}