Dziwne zachowanie się zmiennych w PHP

0

Zauważyłem dziwne zachowanie zmiennych w skryptach PHP. Nie wiem czy to normalne, czy po prostu u mnie takie cuda się dzieją. Chodzi o to, że na początku pliku zdefiniowałem kilka zmiennych i przypisałem im jakieś wartości. Potem, w połowie dokumentu poleceniem include podpiełem inny plik, w którym był jakiś skrypcik. W tym skrypcie jednak zmienne wcześniej ustawione nie miały żadnych wartości! Przecież gdy doda się jakiś plik przez include to tak jakby ten plik był częścią całości więc zmienne powinny bć w nim również. Ktoś umie to wyjaśnić???

0

jak w includowanym pliku masz jakies funkcje to sprobuj

global $zmienna;

:-)

0

jezeli juz to

global $zmienna;

ale to raczej zle rozwiazanie..
hmm - a gdzie one nie maja wartosci? bo musza miec.
podejzewam w czym problem, ale podaj kod ktory nie dziala, zebym sie upewnil czy to to.

0

jak w includowanym pliku masz jakies funkcje to sprobuj

global $zmienna;

:-)

wydaje mi się, że w tym przypadku nie ma to znaczenia :|

0

wydaje mi się, że w tym przypadku nie ma to znaczenia :|

jak to nie ma... zalozmy:

<?
$zmienna="bla";
include 'skrypt.php';
?>
<?
function skrypt(){

<- includowany skrypt.php

echo $zmienna;
}
?>

bez global $zmienna w skrypt() echo wypluje NULL

0

jak to nie ma...

jak pacjent mowi ze nie ma zmiennych w calym includowanym skrypcie to w funkcji tez ich nie bedzie ile bys tam globalow nie wstwil...

zalozmy:

ten watek nie dotyczy twoich zalozen :P

[dopisane]
a jesli sie okaze ze chodzi o global w funkcji to wszystko kasuje [diabel]

0

piechnat: useless.. :/
j@x: posmiajdalo ci sie.. w pliku jest, w funkcji nie ma. ale tak sie dzieje nie wazne czy plik jest includowany czy nie.
ogolnie - funkcje maja sluzyc operacji na jakichs argumentach, a argumenty sie przekazuje, a nie bierze z 'nie wiadomo skad' :P
owszem - global tu pomoze, ale jest to zla praktyka i jezeli sie da, to nalezy tego unikac.
po prostu przy wywolywaniu funkcji przekazuj ta zmienna jako argument i po problemie.. a jezeli potrzebujesz wewnatrz funkcji operowac na tej zmiennej - uzyj referencji.

0

piechnat: useless.. :/
j@x: posmiajdalo ci sie.. w pliku jest, w funkcji nie ma. ale tak sie dzieje nie wazne czy plik jest includowany czy nie.
ogolnie - funkcje maja sluzyc operacji na jakichs argumentach, a argumenty sie przekazuje, a nie bierze z 'nie wiadomo skad' :P
owszem - global tu pomoze, ale jest to zla praktyka i jezeli sie da, to nalezy tego unikac.
po prostu przy wywolywaniu funkcji przekazuj ta zmienna jako argument i po problemie.. a jezeli potrzebujesz wewnatrz funkcji operowac na tej zmiennej - uzyj referencji.

dziekujemy za wyklad ..... ale on nie pisze ze nie ma funkcji (mogla byc... dlaczego includowany plik mialby nie zawierac jedynie jakiejs funkcji)... wiec ZAKLADAM ...ze moja odpowiedz miala jakis % na trafienei problemu...

0

j@x poczul sie urazony, a to zwykla pomylka :P
tzn. nie patrzylem kto napisal 1 posta i tylko spojrzalem na twoj zalaczony kod i uznalem, ze zalaczyl go autor topic'u :)

0

<font color="blue">OT do usera Shadow.</span>
Słuchaj koleś - bądź tak łaskaw i wyłącz autorespondera na poczcie, bo dziś dostałem od tej bezdusznej maszyny 7 takich samych maili. Albo nie włączaj "wyślij odpowiedź na e-mail" jak masz automat włączony - to naprawdę może wkurzyć :[

Wyłączyłem Ci powiadamianie, bo już mnie szajba wzięła.
Koniec OT - można powrócić do rozmowy ;)

0

Oki. pop pierwsze, ogromne sorki za autorespondera.... zapomnialem o nim..
co do waszych odp. wiem doskonale ze najlepiej przekazywac jakies zmienne do funkcji przez parametr. ale troche z lenistwa chcialem to zrobic jak zrobilem. jestem bardzo przyzwyczajony do Delphi i bylem przekonany ze takie rozwiazanie chociaz niegodne programisty zadziala. przyznaje ze zapomnialem o global. bylo cos wspominane ze to niekoniecznie musi pomoc wiec jak cos to sprawdze i dam znac. thx all. na razie odbiór ;-)

0

juz moge w polowie powiedziec 'ahahahahaahahah WHOIS THE BIACZ NOW?!!?'

0

dziala z global. znalazlem w dokumentacji ;) i bylo tam wspomniane, ze zeczywiscie w innych jezykach istnial dostem wewnatrz funkcji do zmiennych bedacych na zewnatrz jej. jest tak nie tylko w pascalu ale i w C. ciekawe...

1 użytkowników online, w tym zalogowanych: 0, gości: 1