Funkcja

Z PHPEdia.pl

Fragment kodu PHP, który może być wielokrotnie używany w obrębie aplikacji poprzez wywołanie funkcji. Podstawową korzyścią płynącą z zastosowania funkcji jest możliwość uniknięcia pisania wielokrotnie tych samych fragmentów kodu. Przykładem takiego zastosowania funkcji może być sytuacja, w której strona WWW posiada menu, które wygląda identycznie na wszystkich podstronach. Umieszczenie kodu budującego menu w ramach funkcji umożliwia wywoływanie całego menu za pomocą jednego słowa - nazwy funkcji (z ewentualnymi parametrami), zamiast każdorazowego przepisywania całego kodu menu. Poza oszczędnością miejsca i czasu zyskujemy także mniejszą podatność na błędy. Pośrednią korzyścią jaką osiągamy jest fakt, że w razie konieczności zmodyfikowania naszego przykładowego menu, zmianę możemy wprowadzić tylko raz - w funkcji - a nie tyle razy, ile razy wyświetlamy menu.

Spis treści

Przykład funkcji w PHP

// początek "deklaracji funkcji"
function mojaFunkcja(){   
  echo 'Jestem funkcją!'; // ciało funkcji
}
// koniec "deklaracji funkcji"
 
mojaFunkcja(); // wywołanie funkcji

Powyższy przykład wyświetli:

Jestem funkcją!

Argumenty funkcji

Przekazanie jednego argumentu

Funkcja może przyjmować argumenty. Argumenty mogą być danymi dowolnego typu, które są przekazywane funkcji podczas jej wywoływania.

function mojaFunkcja($imie){   
  echo 'Jestem funkcją, którą napisał '; 
  echo $imie;
}
$argument = 'Kuba';
mojaFunkcja($argument); // wywołanie funkcji z argumentem w postaci zmiennej

Powyższy przykład wyświetli:

Jestem funkcją, którą napisał Kuba

Przekazanie wielu argumentów

Argumentów może być wiele, zależy to od deklaracji funkcji. Rozważmy poniższy przykład z trzema argumetami:

function mojaFunkcja($kto, $jakiego, $co){   
  echo $kto.' ma '.$jakiego.' '.$co;
}
mojaFunkcja('Każdy', 'jakiegoś', 'bzika'); // wywołanie funkcji z trzema argumentami

Powyższy przykład wyświetli:

Każdy ma jakiegoś bzika

Argument opcjonalny

Zdarza się, że nie przy każdym wywołaniu funkcji chcemy podawać wartość w argumencie.

function mojaFunkcja($imie, $zarobek=4000){   
  echo $imie.' zarabia '.$zarobek.'zł';
}
mojaFunkcja('Mateusz'); // Wywołujemy

Powyższy kod wyświetli nam

Mateusz zarabia 4000zł

Zaś funkcja wywołana w taki sposób:

mojaFunkcja('Mateusz', 1750);

Wyświetli nam:

Mateusz zarabia 1750zł

Return

Słowo return umieszczone w obrębie funkcji przerywa jej działanie. Jeżeli po słowie umieścimy jakąś wartość, to funkcja wraz z zakończeniem działania zwróci tą wartość. Rozważmy poniższy przykład:

function mojaFunkcja(){   
  echo 'raz ';
  echo 'dwa ';
  return 'a kuku '; // zakończ działanie i zwróć String
  echo 'trzy';
}
$zwrot = mojaFunkcja(); 
echo $zwrot;

Powyższy przykład wyświetli:

raz dwa a kuku

Jak widać, możliwe jest umieszczenie zwracanej przez funkcję wartości w zmiennej. Możliwe jest także bezpośrednie wyświetlenie zwracanej wartości:

function mojaFunkcja(){   
  return 'Dzień dobry!';
}
mojaFunkcja(); // samo wywołanie funkcji nie wyświetli nic
echo mojaFunkcja(); // tym razem wyświetlimy zwracaną przez funkcję wartość

Powyższy przykład wyświetli:

Dzień dobry!

Zobacz także