Przejdź do treści

Centrum Kształcenia Zawodowego i Ustawicznego w Mrągowie

Nieokreślona liczba argumentow funkcji

wtorek,

Nieokreślona liczba argumentow funkcji

Funkcja użytkownika w języku PHP może pobierać nieokreśloną liczbę argumentów, np. w przypadku kiedy w deklaracji funkcji został uwzględniony tylko jeden parametr, przekazanie w wywołaniu pięciu oddzielonych przecinkiem wartości nie spowoduje błędu. Co więcej, tę własność można w użyteczny sposób wykorzystać. Fabryczna funkcja func_get_args() zwraca tablicę z wartościami wszystkich argumentów, które przekazano do funkcji. Dostępna jest także funkcja func_num_args() zwracająca liczbę przekazanych argumentów.

Pierwsza z przedstawionych funkcji oblicza średnią wartość z przekazanego zbioru liczb. Została zabezpieczona przed możliwością wywołania jej bez podania parametrów, co doprowadziłoby do próby dzielenia przez zero. Osiągnięto to, zamieszczając jeden parametr ($a) w deklaracji funkcji, stał się on obowiązkowy w wywołaniu. Do policzenia sumy wartości elementów zwróconej przez func_get_args() tablicy posłużyła fabryczna funkcja array_sum().

<?php
   
   function avg($a) {
       return array_sum(func_get_args()) / func_num_args();
   }

// przykładowe wywołania
   echo avg(9); // 9
   echo avg(0); // 0
   echo avg(1,2,3); // 2

?>

Druga z prezentowanych funkcji ustala największą liczbę spośród przekazanych argumentów. Wykorzystano w niej podobne mechanizmy jak wyżej, argumenty zostają przekształcone do postaci tablicy i trafiają do fabrycznej funkcji max przewidzianej dla tego typu danych. Aby zapewnić poprawne stosowanie funkcji my_max wymuszono konieczność przekazania przynajmniej jednego argumentu.

<?php
   
    function my_max($a) {
        return max(func_get_args());
    }

// przykladowe wywolania
    echo my_max(9); // 9
    echo my_max(9,1,3,4,55); // 55
    echo my_max(9,1,3,4,5,6); // 9

?>

Udział wzięli

max

Artykuł: Harmonogram egzaminów maturalnych

Harmonogram egzaminów maturalnych

Artykuł: Staże w Hiszpanii

Staże w Hiszpanii

Artykuł: Conformité Européenne

Conformité Européenne

Artykuł: Display Stream Compression

Display Stream Compression

Artykuł: High Dynamic Range

High Dynamic Range

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły