Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Dlaczego funkcja nie widzi zmiennych globalnych
amii
post 29.11.2009, 13:19:10
Post #1





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

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


Mam dwa pliki plik z funkcjami function.php i plik konfiguracyjny gdzie definiowane są zmienne config.php
W pliku functions.php mam taką instrukcję:

  1. require_once('config.php');
  2. global $plik; //to zmienne z pliku config.php
  3. global $plik1;
  4. global $plik3;
  5. global $plik4;
  6. global $ile;
  7. global $ile2;
  8. global $ilosc;
  9. global $podstrony;
  10. global $katalog;
  11.  
  12. global $temat;
  13. global $naglowek;
  14. global $link;
  15. global $wiadomosc;
  16. if (isset($_POST['ile']) && $_POST['ile']!="") {$ile = $_POST['ile'];} else $ile=10;
  17.  
  18. switch ($_REQUEST['action']) {
  19. case 'wydobadz':
  20.  
  21. echo 'Plik to ' . $plik . '<br>'; //tu zmienne wyswietlaja sie prawidlowo
  22. echo 'Plik1 to ' . $plik1 . '<br>';
  23. echo 'Plik3 to ' . $plik3 . '<br>';
  24. echo 'Plik4 to ' . $plik4 . '<br>';
  25. echo 'Ile to ' . $ile . '<br>';
  26. echo 'Ilosc to ' . $ilosc . '<br>';
  27. echo 'Podstrony to ' . $podstrony . '<br>';
  28. echo 'Katalog to ' . $katalog . '<br>';
  29. echo 'Naglowek to ' . $naglowek . '<br>';
  30. echo 'Temat to ' . $temat . '<br>';
  31.  
  32. wydobadz();
  33. break;
  34.  
  35.  
  36. }
  37.  
  38.  
  39. function wydobadz($plik, $plik1, $ile, $podstrony, $ile2) {
  40. if (isset($_POST['plik']) && $_POST['plik']!="") {$plik1=$_POST['plik'];}
  41. if (isset($_POST['plik1']) && $_POST['plik1']!="") {$plik=$_POST['plik1'];}
  42. if (isset($_POST['ile']) && $_POST['ile']!="") {$ile=$_POST['ile'];}
  43. if (isset($_POST['podstrony']) && $_POST['podstrony']!="") {$podstrony=$_POST['podstrony'];}
  44. if (isset($_POST['ile']) && $_POST['ile']!="") {$ile1=$_POST['ile'];} else {$ile1=$ile;}
  45.  
  46.  
  47. echo 'Plik to ' . $plik . '<br>'; //tu zmienne sie zeruja
  48. echo 'Plik1 to ' . $plik1 . '<br>';
  49. echo 'Plik3 to ' . $plik3 . '<br>';
  50. echo 'Plik4 to ' . $plik4 . '<br>';
  51. echo 'Ile to ' . $ile . '<br>';
  52. echo 'Ilosc to ' . $ilosc . '<br>';
  53. echo 'Podstrony to ' . $podstrony . '<br>';
  54. echo 'Katalog to ' . $katalog . '<br>';
  55. echo 'Naglowek to ' . $naglowek . '<br>';
  56. echo 'Temat to ' . $temat . '<br>';
  57.  
  58. //jaks tresc funkcji
  59.  
  60.  



Wie ktoś dlaczego funkcja wydobadz nie widzi przekazywanych zmiennych?


--------------------
gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet.
Zarabianie bez wysiłku na domenach bez ruchu: prolink.
Go to the top of the page
+Quote Post
Fantazyn
post 29.11.2009, 13:25:36
Post #2





Grupa: Zarejestrowani
Postów: 135
Pomógł: 38
Dołączył: 24.02.2007
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


Spróbuj wewnątrz funkcji wydobadz() na samym początku dopisać:

  1. global $nazwa_zmiennej1, $nazwa_zmiennej2;


Oczywiście musisz podać wszystkie swoje zmienne oddzielone przecinkami.

Ps. Zastanów się jednak czy nie lepiej rozwiązać swój problem niż korzystać z globalnych zmiennych.

Pozdrawiam.


--------------------
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 10:21