Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] zrobienie funkcji - jak?
Forum PHP.pl > Forum > Przedszkole
michalszweisig
  1. if(mysql_num_rows($wynik)) {
  2.  
  3. $a = $_GET['a'];
  4. $b = $_GET['b'];
  5. $c = $test // $test to jest wynik wczesniejszego pobierania z bazy
  6. }


Mam taki kod 2 razy, wiec chce zrobic z tego funkcję, ale jak zrobić, żeby ta funkcja zwracałą 3 wartości i najważniejsze jak się do nich odwoływać?
matino
Podpowiedź - Twoja funkcja może zwracać tablicę smile.gif
dziamber
  1. function jakas_nazwa($test) {
  2. $tablica = array();
  3. $tablica['a'] = $_GET['a'];
  4. $tablica['b'] = $_GET['b'];
  5. $tablica['c'] = $test;
  6. return $tablica;
  7. }
  8.  
  9. if(mysql_num_rows($wynik)) {
  10. $cos = jakas_nazwa($test);
  11. echo $cos['a'];
  12. echo $cos['b'];
  13. echo $cos['c'];
  14. }
  15.  
  16.  
markonix
Cytat(michalszweisig @ 15.04.2011, 15:58:43 ) *
Mam taki kod 2 razy, wiec chce zrobic z tego funkcję

Na tej samej stronie?
Gdzieś wyczytałem, że wykonanie funkcji, aniżeli samego kodu jest 8 razy wolniejsze więc to nie jest powód do pakowania tego w funkcje.
Funkcje stosujesz gdy możliwe będzie jej wykorzystywanie przynajmniej w kilku przypadkach, w różnych blokach kodu i w różnych sytuacjach (przy zmiennych danych wejściowych).
michalszweisig
Właśnie to są dwie strony.

Moze jeszcze raz dokladniej wytłumaczę i trochę zmienię przykład.

  1. if(mysql_num_rows($wynik)) {
  2.  
  3. $a = $_GET['a'];
  4. $_SESSION['b'] = $_GET['b'];
  5. $c = $test // $test to jest wynik wczesniejszego pobierania z bazy
  6. } else { echo "brak wyników";
  7. header('Location: blad.php');}


No i mam takie coś na dwóch stronach i teraz pytania:
1 jak to mam ubrać w funkcję? całość razem z ifem? bo może być taka sytuacja, że $wynik jest puste, więc wtedy powinien się wykonać else, a czy w funkcji mogę zrobić dwa returny zależne od ifa?
2 $_SESSION['b'] musi być zwracana wtedy, czy ona się automatycznie wykona? tylko ze mam plik funkcje.php i tam nie ma session_start(); ewentualnie mogę dodać, ale pytam.
3 można używać funkcji header we własnych funkcjach?

Nie wiem jak się w ogóle zabrać tworzenie takiej funkcji, bo myślałem, że if i else powinno zostać w tym kodzie, ale wtedy jak wezme do funkcji tylko zmienne to robienie z nich tablic tylko zwiększy ilość kodu.
markonix
Cytat(michalszweisig @ 15.04.2011, 16:39:41 ) *
No i mam takie coś na dwóch stronach i teraz pytania:
1 jak to mam ubrać w funkcję? całość razem z ifem? bo może być taka sytuacja, że $wynik jest puste, więc wtedy powinien się wykonać else, a czy w funkcji mogę zrobić dwa returny zależne od ifa?
2 $_SESSION['b'] musi być zwracana wtedy, czy ona się automatycznie wykona? tylko ze mam plik funkcje.php i tam nie ma session_start(); ewentualnie mogę dodać, ale pytam.
3 można używać funkcji header we własnych funkcjach?

Nie wiem jak się w ogóle zabrać tworzenie takiej funkcji, bo myślałem, że if i else powinno zostać w tym kodzie, ale wtedy jak wezme do funkcji tylko zmienne to robienie z nich tablic tylko zwiększy ilość kodu.

Szczerze Cie nie rozumiem, ale spróbuje pomóc...

1. Możesz wstawić wywołanie funkcji w IF np. if(funkcja() == true) { // kod }
Możesz zrobić 2 returny, wygląda to tak:
if(warunek) return 1;
return 2;
Nie jest tu potrzebny nawet else ponieważ jeśli warunek jest spełniony to zwraca 1 i kończy wywołanie funkcji (return to takie exit dla funkcji)

2. Niestety nie rozumiem o co pytasz.

3. Możesz wstawić header w funkcje pamiętając, że nie może być wywołana taka funkcja przed wyświetleniem czegokolwiek (echo, czy jakiś inny tekst, treść itp).
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.