Bajo.pl PHP & MySQL Pomoc Cz@t Poczta
 Strona główna
 Newsy
 Kurs PHP
 Kurs MySQL
 Skrypty
 Download
 Księga gości
 O mnie

 Kurs PHP
 Kurs MySQL

Skrypty:

 Graficzny licznik
 Sonda poll
 Statystyki istat
 BlazeBoard PL
 Phorum 3.2.11
inne ->   

Statystyki:

Kurs PHP 
ARGUMENTY FUNKCJI

Aby funkcja mogła operować na konkretnych danych, trzeba je jakoś do niej przekazać. Właśnie do tego służą argumenty. Przy deklarowaniu funkcji jest to lista zmiennych oddzielonych przecinkami. Przy wywołaniu funkcji podaje się natomiast listę wartości, również oddzielonych przecinkami. PHP wspiera przekazywanie argumentów przez wartość i przez referencje. Dostępne są równiez domyślne wartości argumentów i zmienne liczba argumentów.



   Przekazywanie argumentów przez wartość

Typowym sposobem przekazywania argumentów jest ich przekazywanie przez wartość. Spójrzmy na przykład:

<?
function test(argument_1,argument_2){
echo("Podano następujące argumenty\n $argument_1\n $argument_2");
}
?>

Wywołanie tej funkcji wygląda następująco:

<?
test("jeden", "dwa");
echo("\n\n");
test(10, 100);
?>

Powyższe wywołania funkcji test() zwracają:

Podano następujące argumenty:
 jeden
 dwa

Podano następujące argumenty:
 10
 100




   Przekazywanie argumentów przez referencję

Domyślnie zmiana wartości argumentu wewnątrz funkcji nie wpływa na wartość argumentu na zewnątrz funkcji. Dzięki referencji możliwa jest zmiana zachowania funkcji. Spójrzmy na taki przykład:

<?
function test(&$text) {
$text .= " [ten tekst dodała funkcja test()]";
}
?>

Wywołanie tej funkcji wygląda następująco:

<?
$text = "to jest piękny tekst";
test($tekst);
echo $tekst;
?>

Powyższe wywołanie funkcji test() zwraca:

To jest piękny tekst [ten tekst dodała funkcja test()]


Spójrzmy jeszcze na taki przykład:

<?
function test($text) {
$text .= " [ten tekst dodała funkcja test()";
},br> ?>

Wywołanie funkcji test():

<?
$tekst = "To jest piękny tekst";

# tryb normalny
test($tekst);
echo $tekst . "\n";

# referencja
test(&$tekst);
echo $tekst . "\n";
?>


Powyższe wywołanie funkcji zwracają:

To jest piękny tekst
To jest piękny tekst [ten tekst dodała funkcja test()]




   Domyślne wartości argumentów

PHP wspiera obsługę domyślnych wartości argumentów, które nie muszą być wtedy podawane:

<?
function test($argument_1, $argument_2 = "") {
echo("Podano następujące argumenty:\n $argument_1\n $argument_2");
}
?>

Oto różne wywołanie tej funkcji:

<?
test("jeden", "dwa");
echo "\n\n";
test(10);
?>

Powyższe wywołania funkcji test() zwracają:

Podano następujące argumenty:  jeden
 dwa

Podano następujące argumenty:
 10
 <nie_podano>

Jak widać z powyższego przykładu, drugi argument ma przypisaną wartość domyślną, która jest używana w przypadku niepodania tego argumentu

Argumenty domyślne muszą być umieszczone na końcu aby było możliwe ich niepodawanie. Spójrzmy na przykład zadeklarowanie argumentów (zwróć uwagę na ich kolejność):

<?
function test($argument_2 = "<nie_podano>", $argument_1) {
echo("Podano następujące argumenty:\n $argument_1\n $argument_2");
}
?>

Oto różne wywołania tej funkcji:

<?
test("jeden", "dwa");
echo "\n\n";
test(10);
?>

Powyższe wywołania funkcji test() zwracają:

Podano następujące argumenty:
 dwa
 jeden

<br>
Warning: Missing argument 2 for test() in <lokalizacja pliku> on line <numer linii>
Podano następujące argumenty:

Zwrócone ostrzeżenie świadczy o niepodaniu wymaganego argumentu wywołania funkcji.

Przy tego typu deklaracjach argumentów bardzo przydają się funkcje func_num_args(), func_get_arg() oraz func_get_args().



   func_num_args()

Funkcja ta zwraca liczbę podanych argumentów wywołania funkcji:

<?
function test() {
   $liczba_argumentow = func_num_args();
   echo "Podano $liczba_argumentow argumentów!";
}
?>

Przykład wywołania funkcji:

<?
test(1, 2, 3, 4, 5);
?>

Wynik działania funkcji:

Podano 5 argumentów!




   func_get_arg

Funkcja ta zwraca wartość podanego argumentu wywołania funkcji:

<?
function test() {
   $liczba_argumentow = func_num_args();
   if ($liczba_argumentow >= 3) {
      $trzeci = func_get_arg(2);
      echo "Trzeci argument: $trzeci";
   }
}
?>

Przykład wywołania funkcji:

<?
test(1, 2, 3, 4, 5);
?>

Wynik działania funkcji:

Trzeci argument: 3




    func_get_args

Funkcja ta zwraca tablicę argumentów wywołania funkcji:

<?
function test() {
   $liczba_argumentow = func_num_args();
   $argumenty = func_get_args();
   echo "Podano następujące argumenty:\n
   foreach($argumenty as $key => $value) {
      echo " $key) $value\n";
   }
}
?>

Przykład wywołania funkcji:

<?
test("jeden", "dwa", "trzy", "cztery", "pięć");
?>

Wynik działania funkcji:

Podano następujące argumenty:
 0) jeden
 1) dwa
 2) trzy
 3) cztery
 4) pięć



TEMATY:
 Funkcje
 Tworzenie funkcji
 Argumenty funkcji
 Zwracanie wartości
 Przykład funkcji

 Spis treści
[poprzedni temat - Tworzenie funkcji] [następny temat - Zwracanie wartości]

© copyright 2001 by Bartosz Maciaszek. Wszelkie prawa zastrzeżone.