Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] zasięg superglobalny
Forum PHP.pl > Forum > Przedszkole
mala_duza
  1. <?php
  2. $a = 'cos';
  3. global $a;
  4. function test()
  5. {
  6. echo $a;
  7. }
  8. test();
  9. ?>


tak jak w temacie, gdzie tu popelnilam blad?
.radex
  1. <?php
  2. $a = 'cos';
  3. function test()
  4. {
  5. global $a;
  6. echo $a;
  7. }
  8. test();
  9. ?>
elemek
global wedruje do srodka funkcji:

  1. <?php
  2. $a = 'cos';
  3. function test() {
  4. global $a;
  5. echo $a;
  6. }
  7. test();
  8. ?>


EDIT :: deklaracja global wewnatrz funkcji musi wystapic zanim zaczniesz uzywac zmiennej
mala_duza
  1. <?php
  2.  
  3. function some()
  4. {
  5. $a = array();
  6. $a[] = 'cos';
  7. global $a;
  8. }
  9. some();
  10. $a[] = 'bla';
  11. print_r($a);
  12.  
  13.  
  14. ?>


a tutaj? dalam do wnetrza a pokazuje samo 'bla';
wookieb
Kod
$a=array();
function some()
{
global $a;
$a[] = 'cos';
}
some();
$a[] = 'bla';
print_r($a);


Badz
Kod
function some()
{
$a=array();
$a[] = 'cos';
return $a;
}
$a=some();
$a[] = 'bla';
print_r($a);
mala_duza
rozumiem ze trzeba dawać global na początku funkcji?

i niech ktos mi powie za plusa czy to dobry sposob zeby se uczynić jakas zmienną globalną;

  1. <?php
  2. $a = 'text';
  3. function global_a()
  4. {
  5. global $a;
  6. }
  7. global_a();
  8. ?>
wookieb
Jezeli zmienna nie jest definiowana w funkcji to jest zmienna globalna. Tylko, że nie dla ciał funkcji.
mala_duza
ale ja wlasnie chce tak zrobic zeby zmienna byla widzialna wszedzie, nawet z wnetrza innych funkcji, czy sposob w moim poprzednim poście jest na to dobry?
wookieb
To w każdej funkcji musisz na początku dać global jeżeli chcesz tej zmiennej użyc w funkcji. Nie ma innej możliwości. Widze, ze nie czytasz uważnie manuali i będziesz tutaj przychodzil z każdym najmniejszym "problemem"
ayeo
Witaj!

Dodatkowo źle jest jeszcze tytuł tematu winksmiley.jpg Nie mówi on nic nikomu.

Pozdrawiam!
mala_duza
O pszepraszam! Strasznie się pomyliłam!

Chodziło mi o to jak zrobić, zeby zmienna miała zasięg superglobalny, a nie globalny, czyli np.

  1. <?php
  2.  
  3. $a = 'cos';
  4. function test()
  5. {
  6. global $cos;
  7. }
  8. test();
  9. function wyswietl()
  10. {
  11. echo $cos;
  12. }
  13. wyswietl();
  14.  
  15. ?>


zeby naprzyklad cos takiego działało

nazwę tematu tez poprawilam
mala_duza
czytałam te strony manuala, pokazują one jak zrobić zasięg globalny. Ja chcę się odwoływać do zrobionych przeze mnie zmiennych nie poprzez $GLOBALS, tylko norlmalnie, $zmienna, i chodzi mi o to czy da się tak zrobić

( tylko ta $zmienna ma byc superglobalna)
wookieb
Przeciez ci juz pisalem ze nie da sie tak zrobic.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.