Include() działa tak, jakbyś po prostu wkleił wstawiany kod w miejsce tej instrukcji. Zmienna musi więc być wcześniej zadeklarowana.
Możesz to rozwiązać deklarując zmienną przed jej użyciem w samym includowanym pliku. Wtedy dalsza część kodu będzie ją jedynie zmieniać:
included.php:
$x = 0;
function a()
{
global $x;
...
}
Jeśli nie chcesz zmieniać jej wartości, sprawdź wcześniej czy nie jest już zadeklarowana:
included.php:
if( isset( $x ) )
$x = 0;
function a()
{
global $x;
...
}
Ale tak na prawdę to odradzam w ogóle używanie zmiennych globalnych. Przekazuj je w argumentach funkcji albo używaj obiektowości. Globalne zmienne to zła praktyka nawet w programowaniu strukturalnym.
No chyba, że u ciebie są to odpowiedniki #define z C/C++. No ale to powinny być zadeklarowane jako pierwsze.