skanuj0090 (37)

skanuj0090 (37)



102 PHP i MySQL dla każdego

Listing 3.35. Obsługa zmiennej liczby argumentów

<html>

<head>

<ti11e>Przykladowa strona</ti tle>

</head>

<body>

<?php

function func O

{

Sliczba_arg » func_num_args();

$str -

for($i “0: $i < $liczba_arg: $i++){

$str .- (string) func_get_arg($i):

}

return $str:

}

echo funcCTo "jest ", "przykład nr ", 1);

</body>

</html>

Liczba argumentów pobierana jest tutaj tak, jak w poprzednim przykładzie, za pomocą wywołania funkcji func_num_args, i jest przypisywana zmiennej liczba_arg. Deklarowana jest także dodatkowa zmienna str, której jest przypisywany pusty ciąg znaków. Odczyt wszystkich argumentów przekazanych funkcji func odbywa się w pętli for, której liczba iteracji jest równa wartości zapisanej w liczba_arg. Kolejne argumenty pobierane są w tej pętli za pomocą wywołań funkcji func_get_arg, której w postaci parametru przekazywany jest numer konkretnego argumentu. Każdy pobrany argument konwertowany jest na typ string za pomocą techniki rzutowania1 oraz jest dodawany do zmiennej str.

Pamiętamy, że operator . = jest operatorem łączącym operacje konkatenacji i przypisania (por. rozdział 2, sekcja „Operatory przypisania”), a zatem wiersz $str .= (string) i func_get_arg($i): ma takie samo znaczenie, jak instrukcja: $str = $str . (string) func_get_arg($i);. Po wykonaniu pętli w zmiennej str znajdą się wszystkie argumenty przekazane funkcji func, przekonwertowane na typ string. Wartość tej zmiennej jest na zakończenie zwracana za pomocą instrukcji return. O tym, że tak przygotowany kod działa zgodnie z założeniami, przekonujemy się wywołując funkcję func z przykładowymi parametrami i wyświetlając wynik jej działania za pomocą instrukcji echo.

1

Z formalnego punktu widzenia jawna konwersja nie jest w tym miejscu niezbędna, gdyż i tak zostałaby wykonana konwersja automatyczna. Niemniej zastosowanie jawnej konwersji zwiększa czytelność kodu.


Wyszukiwarka

Podobne podstrony:
skanuj0119 (19) 130 PHP i MySQL dla każdego Listing 4.22. Wykorzystanie konstruktora do inicjacji pó
skanuj0127 (16) 138 PHP i MySQL dla każdego Listing 5.2. Różne sposoby odczytania danych z formularz
69846 skanuj0050 (68) 62 PHP i MySQL dla każdego Listing 2.25. Przykład działania funkcji
33846 skanuj0100 (27) 112 PHP i MySQL dla każdego Listing 4.10. Wykorzystanie pętli for do odczytu t
skanuj0163 (9) 174 PHP i MySQL dla każdego Listing 6.12. Wykorzystanie funkcji strtok <?php $str
skanuj0355 (2) 370 PHP i MySQL dla każdego Listing 13.7. Wyświetlenie zawartości tabeli z możliwości

więcej podobnych podstron