Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmienna poza funkcją.
Forum PHP.pl > Forum > PHP
djluzak
Jak wyprowadzić zmienną poza funkcję, żeby można ją było użyć w innym miejscu skryptu.

Przykład:
  1. <?
  2. function jakas() {
  3.  
  4. $zmienna = '1';
  5.  
  6. }
  7. ?>


I jak wykorzystać tą zmienną np. w innej funkcji. Może jakieś zmienne globalne ale z co z nimi? Dzięki za pomoc.
czachor
  1. <?
  2. function jakas() {
  3.  
  4. $zmienna = '1';
  5.  
  6. return $zmienna;
  7. }
  8.  
  9. $poza_funckja = jakas();
  10. //$poza funckja ma teraz wartosc 1
  11. ?>
djluzak
Wszystko oki tylko ja podalem najprostszy przyklad a co jesli w funcji bedzie pol strony kody i chcialbym wyciagnac tylko jedna konkretna zmienna?

Np.
  1. <?
  2. function jakas() {
  3.  
  4. $zmienna = '0';
  5. $zmienna1 = '1';
  6. $zmienna2 = '2';
  7. $zmienna3 = '3';
  8. $zmienna4 = '4';
  9.  
  10. return $zmienna;
  11. }
  12. ?>


Jak sie nic nie zmieni i bedzie tak samo to super.
bela
  1. <?php
  2. $foo = 0;
  3.  
  4. function bar () {
  5. global $foo;
  6. $foo = 1;
  7. }
  8.  
  9. print $foo; 
  10. ?>


?
djluzak
jesli zrobie tak i mam wiecej kodu w zmiennej to mi zwraca oprocz zmiennej caly kod ktory jest w funkcji.
Macie jakis inny pomysl?

  1. <?
  2. function jakas() {
  3.  
  4. // duzo kodu....
  5.  
  6. $zmienna = '1';
  7.  
  8. return $zmienna;
  9. }
  10.  
  11. $poza_funckja = jakas();
  12. //$poza funckja ma teraz wartosc 1
  13. ?>


Nie moge zastosowac $poza_funckja = jakas(); bo zwraca cala funkcje.
Pomocy!
kidu
jak cala funkcje zwraca, musiales cos przekombinowac. sprawdz czy masz wszytko pozamykane odpowiednio, bo to siakos tak nie bardzo mozliwe jest chyba winksmiley.jpg

w funkcji sobie cos robisz a potem po return dajesz nazwe zmiennej ktora masz w funkcji i ktora chcesz zwrocic i funkcja zwraca jakos swoj wynik ta zmienna.
djluzak
A jak jest w funkcji echo itp to co wtedy?
Nie ma ktos jakiegos pomyslu?
dr_bonzo
Jak w funkcji jest echo to onie NIE ZWRACA WARTOSCI przez funkcje tylko WYPISUJE dane w miejscu pojawienia sie tej instrukcji.
Funkcja zwraca tylko to co podasz instrukcji return!
siemakuba
Wydaje mi się, że chodzi ci o to, żeby oprócz tego wszystkiego co ma zrobić funkcja (bez znaczenia czy ma wyświetlić wyniki za pomocą echo czy je zwrócić) ustawione zostały dodatkowo wartości jakichś zmiennych, które mają być dostępne poza fukncją.

Trzeba, jak pisał bela użyć global, lub przekazaz zmienne ktore chcesz zmienic/ustawic wewnatrz funkcji przez referencję:


  1. <?php
  2.  
  3.  
  4. // opcja 1
  5.  
  6. $var_1 = '';
  7. $var_2 = '';
  8. $var_n = '';
  9.  
  10. function DoWhatever()
  11. {
  12. global $var_1, $var_2, $var_n;
  13.  
  14. /* 
  15. wykonujesz sobie cala logike funkcji, i zgodnie z potrzeba
  16. ustawiasz wartosci zmiennych globalnych
  17. */
  18.  
  19. echo 'Wynik dzialania fukcji';
  20.  
  21. // lub
  22.  
  23. return 'Wynik dzialania funkcji';
  24.  
  25. }
  26.  
  27. /* 
  28. opcja 2 - przekazujesz przez referencje zmienne ktorych
  29. wartosc chcesz zmienic wewnatrz funckji
  30. */
  31.  
  32. function DoWhatever($tu_jakies_parametry_podstawowe, &$var_1, &$var_2, &$var_n)
  33. {
  34. /* 
  35. wykonujesz sobie cala logike funkcji, i zgodnie z potrzeba
  36. ustawiasz wartosci zmiennych
  37. */
  38.  
  39. echo 'Wynik dzialania fukcji';
  40.  
  41. // lub
  42.  
  43. return 'Wynik dzialania funkcji';
  44. }
  45.  
  46. doWhatever($parametry_podstawowe, $v1, $v2, $vn);
  47.  
  48. ?>


pozdr.
djluzak
Mniejwiecej zalapalem o co Wam chodzi i wlasnie nad tym mysle.

A zakladajmy mam taki kod tzn jego czesc. Funkcja odpowiedzialna za wyswietlenie strony glownej a w niej zmienna $tytul i chce nie wiem jeszcze jak wyciagnac z niej ta jedna zmienna. Nie wiem w jaki sposob to zrobic ale wiem ze tytul musi byc w srodku kodu poniewaz np.przy wyszukiwarce chce miec dynamiczny tytul. Zakrecilem ale moze ktos zalapie.

  1. <?php
  2.  
  3. function StronaGlowna() {
  4.  
  5. echo &#092;"Tu jest jakis kod i echa itd.<br>A ja chce zwrocic tylko wartosc zmiennej $title a tego nie\";
  6.  
  7. $title = 'Tytul strony';
  8. $v1    = '30';
  9.  
  10. return $title;
  11. }
  12.  
  13. StronaGlowna();
  14.  
  15. ?>


Moze macie jakis inny sposob na wyciagniecie z tej funkcji jednej zmiennej, ktora powstaje na podstawie tego kodu.
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.