Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] zmienne tworzone w funkcji widoczne poza nia
Forum PHP.pl > Forum > Przedszkole
bastek8989
Witam


pytanie: jak zrobic zeby zmienne tworzone w funkcji byly widoczne poza nia? :|

niemoglem znalesc

thx pozdrawiam
=kokos=
musisz w funkcji przed zmienną dać global na przykład:

  1. <?php
  2. function wyswietl()
  3. {
  4. global $zmienna;
  5. $zmienna='zwartość';
  6. echo 'Wew funkcji $zmienna = '.$zmienna;
  7. }
  8.  
  9. wyswietl()
  10.  
  11. echo 'Na zew funkcji. $zmienna = '.$zmienna;
  12. ?>
siemakuba
Wszystko pięknie, tylko zmiennych globalnych należałoby unikać. Funkcja powinna wykonać swoje zadanie i zwrócić wartość. Jeżeli chcesz zwrócić więcej zmiennych możesz zebrać je wszystkie w tablicę i zwrócić jako wynik działania funkcji.

  1. <?php
  2. function test()
  3. {
  4. $a = 1;
  5. $b = 2;
  6. $c = 3;
  7. return array($a, $b, $c);
  8. }
  9.  
  10. list($a, $b, $c) = test();
  11. ?>


Możesz też przekazać zmienną do funkcji przez referencję, i wtedy modyfikując zmienną wewnątrz funkcji modyfikacji ulegnie też oryginalna zmienna.

  1. <?php
  2. function test(&$var)
  3. {
  4. $var = 12;
  5. }
  6.  
  7. $a = 4;
  8.  
  9. test($a);
  10.  
  11. echo $a; // wynik -> 12
  12. ?>


pozdr.
bastek8989
czyli wystarczy dac array i zmienne stworzone w funkcji sa widdoczne poza nia
siemakuba
Cytat
czyli wystarczy dac array i zmienne stworzone w funkcji sa widdoczne poza nia

Nie, nie wystarczy. Trzeba zrobić to tak jak napisałem powyżej.
No chyba że ty mówisz o czymś innym niż mi się wydaje.

pozdr.
Sedziwoj
siemakuba dlatego nie ma co uczyć za dużo, jak ktoś się nauczy podstaw wtedy niech się uczy dalej. Co prawda ja się zawsze zaczynam uczyć od semantyki i wskazanych poprawnych użyć, tylko że to już wymaga pewnej wiedzy którą się zdobywa najłatwiej na swoich błędach.

Przepraszam za to odejście od tematu
bastek8989
to co powiedziales to za przeproszeniem gowno prawda - najlatwiej sie uczyc jak masz jakis cel. Ja nieucze sie od poczatku tylko ze 'srodka' i to moja sprawa takimi pytaniami wypelniam braki smile.gif - dalem to pytanie na forum gdzie tego typu pytania sa normalne, wiec niewtykaj nosa w nieswoje sprawy tylko jak chcesz pomoc to zrob to a jak nie to nie pisz tego co mozna sie samemu domyslec (dziwie sie ze administracja nie reaguje)

thx za odpowiedz
pozd

ps.
jesli koniecznie chcesz sie wyzalic napisz posta na żal.pl
kszychu
@Sedziwoj - jak nie masz nic konstruktywnego do powiedzenia to nie zaśmiecaj wątku takimi tekstami.
@bastek8989 - to samo odnośnie zaśmiecania. Przy okazji, pytasz o takie podstawy, że nie dziw się, że niektórych może to irytować. Odpowiedź na Twoje pytanie można uzyskać studiując kilka pierwszych stron manuala.

Następnym razem sypną się warningi.
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.