Cytat(markonix @ 25.05.2014, 20:32:33 )

$zmienna = true;
Nie, ponieważ
$zmienna = true;
function foo() {
return $zmienna;
}
da wynik false, true - chociaż dwa razy zwraca $zmienna.
W tym przypadku można zrobić, tak jak rzecze p-f:
$GLOBALS['zmienna'] = true;
function foo() {
return $GLOBALS['zmienna'];
}
var_dump(foo
(), $GLOBALS['zmienna']); //true true
Można też np.
$zmienna = true;
function foo() {
return $GLOBALS['zmienna'];
}
Albo
$zmienna = true;
function foo() {
return $zmienna;
}
Chodzi o to, że $GLOBALS to tablica zawierająca wszystkie zmienne globalne. Można do niej coś wsadzić i z niej odczytać, ale zmienne się też do niej same dodają. A zmienna staje się globalną, jeśli zostanie zadeklarowana w global scope, tj. poza funkcjami, klasami itd. Które rozwiązanie jest najlepsze? Najwygodniejsze dla Ciebie. Jeśli w funkcji będziesz dużo operował na zmiennej, to będzie wygodniej dodać to "global $zmienna;" - wtedy funkcja nie będzie korzystała z lokalnej zmiennej, gdy napiszesz $zmienna, ale z globalnej, czyli takiej, jaką chcesz.
Chyba, że chodzi Ci także o przesyłanie między stronami. Wtedy można użyć sesji:
http://www.php.net/manual/en/reserved.variables.session.php - tylko wtedy dochodzi sporo problemów z bezpieczeństwem.