Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Zmienna w funkcji
Lirdoner
post
Post #1





Grupa: Zarejestrowani
Postów: 500
Pomógł: 1
Dołączył: 29.09.2009

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


Witam, mam raki problem, że z funkcje nie widzą mi zmiennych zdefiniowanych jeszcze przed ich wywołaniem
Na początku mam tak
  1. $result = mysql_query("SELECT * FROM config") or die(mysql_error());
  2. $board_config = array();
  3. while ($row = mysql_fetch_array($result)) {
  4. $board_config[$row['Nazwa']] = $row['Wartosc'];
  5. }

I przez to tworzy się zmienna $board_config['Admin_color']
Ale w funkcji jej nie widać :/
  1. function najlepszy() {
  2. $query = mysql_query("SELECT Nick,Exp FROM users ORDER BY Exp DESC LIMIT 1") or die(mysql_error());
  3. $nick = mysql_fetch_row($query);
  4. echo $board_config['Admin_color'];
  5. echo $nick[0], " - Exp: ", $nick[1];
  6. }

3 linijka już się nie ukazuje :/
Co na to poradzić?
Go to the top of the page
+Quote Post
zend
post
Post #2





Grupa: Zarejestrowani
Postów: 580
Pomógł: 85
Dołączył: 25.03.2010
Skąd: Skrzyszów :)

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


Funkcje mają zasięg lokalny
  1. function xxx($board_config) {} //tak zadziała, musisz tylko pamiętać o przekazywaniu parametru


Możesz jeszcze wykorzystać zmienne globalne
  1. function xxx()
  2. {
  3. global $board_config;
  4. }

Ale jest to metoda zła, wykorzystaj ją tylko w ostatecznośći np kiedy korzystasz z gotowego systemu i nie możęsz ustawić parametrów, ale jeśli nie to użyj perwszego sposobu bo jest poprawny

Ten post edytował zend 28.05.2010, 19:21:11
Go to the top of the page
+Quote Post
jaslanin
post
Post #3





Grupa: Zarejestrowani
Postów: 511
Pomógł: 143
Dołączył: 13.03.2010
Skąd: Jasło

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


przekarz zmienną $board_config do funkcji - lepszy pomysł

albo w funkcji daj
  1. global $board_config;
wewnątrz funkcji - gorszy pomysł

Poczytaj także o zasięgu zmiennych. By wiedzieć dlaczego tak się dzieje.


--------------------
Good luck and happy PHP'ing
Go to the top of the page
+Quote Post
lobopol
post
Post #4





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

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


Albo przekazuj zmienną do funkcji (function bla($zmienna)) albo dodaj global
  1. function pokaz()
  2. {
  3. global $zmienna;
  4. echo $zmienna;
  5. }


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 20:13