Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Zmienna globalna
jarek0203
post
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 2
Dołączył: 1.01.2013

Ostrzeżenie: (0%)
-----


Witam. Mam funkcje która nic nie zwraca, jedynie wysyła dane do bazy danych:
Chce zrobić coś takiego:

  1. function zmien($nr, ...){
  2. .
  3. .
  4. .
  5.  
  6. $liczba=$nr;
  7.  
  8. }
  9.  
  10.  
  11. $zmienna=$liczba;
  12. echo $zmienna;


Co zrobić aby zmienna $liczba była widoczna globalnie? próbowałem z global, GLOBALS[] i static. Nic nie działa.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
adeptofvoltron
post
Post #2





Grupa: Zarejestrowani
Postów: 51
Pomógł: 2
Dołączył: 4.09.2013

Ostrzeżenie: (0%)
-----


istnieją 2 nieładne rozwiązania:

  1. $liczba;
  2.  
  3. function zmie($nr){
  4. global $liczba;
  5. $liczba=$nr;
  6. }
  7.  
  8. zmie(1);
  9. echo $liczba;


a drugie:
  1. $GLOBALS['x']=5; .
  2. function zmien($nr){
  3. $liczba=&$GLOBALS['x'];
  4. $liczba=$nr;
  5. }
  6.  
  7. zmien('ala ma kota');
  8.  
  9. echo $GLOBALS['x'];


Tylko jeszcze raz, takie rozwiązania sa niebezpieczne. mogą ci łatwo wpłynąć na zmianne w innej cześci programu jeśli będzie kolizja nazw. I nawet tego nie zauważysz+zajmuje ci odrobinę miejsca w pamięci(co jest raczej mało ważne)

Edyta:
Chociaż konto mam tu od dawna, to działam na tym forum od niedawna. Tak więc pytanie do modów. W przypadku jak chce dopisac coś nowego lepiej widziana jest edycja ostatniego postu. Czy zakładac nowy post(na róznych forach różnie z tym bywa)

A teraz właściwie rozwiązanie o którym nie napisałem wczesniej..a w sumie będzie najładniejsze. Wrzuć tę funkcję w jakiś obiekt + pole w tym obiekcie.
  1. class foo{
  2. public $liczba;
  3.  
  4. function zmien($nr){
  5. $this->liczna=$nr;
  6. }
  7. }
  8.  
  9. $x = new foo();
  10. $x->zmien(5);
  11. echo $x->liczba;


Ten post edytował adeptofvoltron 12.02.2014, 00:21:25
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 02:51