Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Dlaczego funkcja nie widzi zmiennych globalnych
Forum PHP.pl > Forum > Przedszkole
amii
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?
Fantazyn
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.
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.