Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Dlaczego return nie przekazuje zmiennej?
Forum PHP.pl > Forum > Przedszkole
greg606
Oto moja pierwsza funkcja:
  1. <?php
  2. function zapytanie($query) {
  3.    $wynik_db = mysql_query ( "$query" ) or die ( "MySQL Error: " . mysql_error () );
  4.    return $wynik_db;
  5. }
  6. ?>


i tak próbuję ją uruchomić:

  1. <?php
  2. $query = "SELECT * FROM forum_user";
  3. zapytanie($query);
  4. var_dump($wynik_db);
  5. ?>

Ale to nie działa sad.gif
Jak to poprawnie napisać?
Funkcja jest umieszczona w dołączonym config.php
erix
zapytanie ZWRACA (return" title="Zobacz w manualu PHP" target="_manual) wartość, taka natura funkcji:

  1. <?php
  2. $wynik_db = zapytanie($query);
  3. var_dump($wynik_db)
  4. ?>


Proponuję lekturę kursu PHP i manuala.
greg606
Cytat(erix @ 24.01.2009, 23:08:44 ) *
Proponuję lekturę kursu PHP i manuala.


Kolego, po co ta ironia?
Nie wiem i tyle, manual i książki widocznie mi nie pomogły, inaczej bym nie pytał

Więc jak?
Czy nie do tego służy return?
Użyłem słowa global ale nie wiem czy to jest konieczne?
djstrong
Cytat(greg606 @ 24.01.2009, 23:52:11 ) *
Kolego, po co ta ironia?
Nie wiem i tyle, manual i książki widocznie mi nie pomogły, inaczej bym nie pytał

Więc jak?
Czy nie do tego służy return?
Użyłem słowa global ale nie wiem czy to jest konieczne?

To ja radzę jeszcze raz przeczytać jakiś kurs programowania (niekoniecznie php).
Funkcja zwraca wartość nie do zmiennej jaką podasz po return, tylko jej wartość (do tak jakby wywołania jej). I z zewnątrz funkcji nie masz dostępu do zmiennych utworzonych w funkcji.
greg606
No zauważyłem że nie mam dostępu tongue.gif
chociaż to troszke bez sensu. Czemu jak moge w funkcji wypluć jakieś echo to nie mogę zmiennej.
erix
Cytat
Kolego, po co ta ironia?

To nie była ironia. Na Twoje pytanie jest odpowiedź w praktycznie każdym kursie PHP. A w manualu na pewno. Rozdział: funkcje.

Cytat
Czemu jak moge w funkcji wypluć jakieś echo to nie mogę zmiennej.

Bo echo wypluwa do wyjścia. Zmienne w funkcji są tylko w obrębie funkcji, a wartość zwracasz właśnie przez return" title="Zobacz w manualu PHP" target="_manual. Ale najpierw poczytaj troszkę na ten temat, bo naprawdę wiele już na ten temat napisano.
Asmox
No to podstawowe pytanie: Czy zrobiłeś połączenie z bazą zanim wywołałeś funkcję? Ja bym ją zrobił o tak:
  1. <?php
  2. function zapytanie($query) {
  3.   mysql_connect("host", "root", "");
  4.   mysql_select_db("baza");
  5.   $wynik_db = mysql_query ( "$query" ) or die ( "MySQL Error: " . mysql_error () );
  6.   return $wynik_db;
  7. }
  8. ?>
nospor
Cytat
Moja pierwsza funkcja
Jak napiszesz drugą funkcję, to tytulem tematu bedzie "Moja druga funkcja" ?
Proszę poprawić tytul na prawidlowy, oddajacy tresc problemu

Cytat
Więc jak?
Czy nie do tego służy return?

Przeciez erix podal ci kod jak poprawnie odebrac to, co zwraca return
  1. <?php
  2. $wynik_db = zapytanie($query);
  3. var_dump($wynik_db);
  4. ?>
greg606
Cytat(Asmox @ 26.01.2009, 12:05:22 ) *
No to podstawowe pytanie: Czy zrobiłeś połączenie z bazą zanim wywołałeś funkcję? Ja bym ją zrobił o tak:
  1. <?php
  2. function zapytanie($query) {
  3.   mysql_connect("host", "root", "");
  4.   mysql_select_db("baza");
  5.   $wynik_db = mysql_query ( "$query" ) or die ( "MySQL Error: " . mysql_error () );
  6.   return $wynik_db;
  7. }
  8. ?>


Łączenie z bazą z pewnych względów mam wcześniej.
Z tego co czytałem to return kończy wykonywanie funkcji więc chyba tutaj to mysql_close nie zostanie wykonane, prawda?


Cytat(nospor @ 26.01.2009, 12:51:55 ) *
Przeciez erix podal ci kod jak poprawnie odebrac to, co zwraca return


Rzeczywiście. Doszedłem do tego troche później winksmiley.jpg

Thanks smile.gif
Crozin
nie zostatnie.
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.