Z życia programisty PHP - trzy kropki w argumencie metody

2021-12-01

Dziś krótko o rzadko spotykanym sposobie dodawania parametru w funkcji lub w metodzie. W poniższym przykładzie widzimy parametr $x poprzedzony trzema kropkami. Dodatkowo mamy zadeklarowany typ parametru int. Taki zapis oznacza że jako parametr może zostać wpisany dowolny ciąg liczb. Dodatkowo została użyta magiczna metoda __invoke którą można zastosować w sytuacji, kiedy wiemy że w klasie będzie miała tylko jedna metoda. Powołując obiekt do życia przez słówko new możemy ominąć metodę i odrazu używać parametrów. Zmienna która normalnie byłaby obiektem teraz jest jakby metodą. W przykładzie, możemy dodać wiele liczb które zostaną potraktowane jak tablica, a więc możliwe do przyjęcia przez funkcje array_sum i dodane do siebie. I to taki bajerek. Jednak jak to potestować, to metoda przyjmuje też stringi i inne typy a funkcja array_sum doda tylko liczby. Tak więc słówko int jest w zbędne.

<?php
class Klasa
{
    public function __invoke(int ...$x)
    {
      echo  array_sum($x);
    }
}
$obj = new Klasa;
echo $obj(33,10,22);

// result: 65
?>

 

 

 

© 2011-2022 taipa.pl RODO Cookies

Polityka RODO

1. Firma Taipa wyznaczyła inspektora ochrony danych osobowych. Dane kontaktowe inspektora:

Michał Myśliński
poczta@taipa.pl

2. Przekazane dane osobowe przetwarzane będą w celu realizacji usług, obsługi zgłoszeń i udzielania odpowiedzi na zgłoszenia;

3. Kategorie danych osobowych obejmują m.in. imię i nazwisko, numer telefonu, adres e-mail, adres, dane dedykowane do procesu/usługi/projektu;

4. Pani / Pana dane osobowe mogą być przekazywane podmiotom przetwarzającym dane osobowe na zlecenie administratora: dostawcy usług IT;

5. Państwa dane osobowe będą przechowywane przez okres istnienia prawnie uzasadnionego interesu administratora, chyba że Pani / Pan wyrazi sprzeciw wobec przetwarzania danych;

6. Państwa dane nie będą przekazywane do państwa trzeciego ani organizacji międzynarodowej;

7. Posiadają Państwo prawo dostępu do treści swoich danych oraz prawo ich sprostowania, usunięcia, ograniczenia przetwarzania, prawo do przenoszenia danych, prawo wniesienia sprzeciwu, prawo do cofnięcia zgody w dowolnym momencie bez wpływu na zgodność z prawem przetwarzania, którego dokonano na podstawie zgody przed jej cofnięciem;

8. Mają Państwo prawo wniesienia skargi do organu nadzorczego zajmującego się ochroną danych osobowych, którym jest Prezes Urzędu Ochrony Danych Osobowych, gdy uznają Państwo, iż przetwarzanie Państwa danych osobowych narusza przepisy ustawy z dnia 10 maja 2018 r. o ochronie danych osobowych (tekst jednolity Dz. U. z 2018 r., poz. 1000) lub przepisy Rozporządzenia Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (ogólne rozporządzenie o ochronie danych) z dnia 27 kwietnia 2016 r. (Dz.Urz.UE.L Nr 119, str. 1);

9. Dane udostępnione przez Panią/Pana nie będą podlegały zautomatyzowanemu podejmowaniu decyzji oraz profilowaniu;

10. Dane pochodzą od osób, których dane dotyczą;

11. Podanie przez Państwa danych osobowych jest dobrowolne;

Polityka Cookies

Ta strona korzysta z plików cookies. Dowiedz się więcej.

Wykorzystujemy pliki cookies. Tutaj znajdziesz informację o rodzaju ciasteczek oraz możliwości zmiany ustawień przeglądarki.

Używamy cookies w celu świadczenia usług i statystyk. Brak zmiany ustawień przeglądarki oznacza, że będą one umieszczane na Twoim urządzeniu. Możesz zmienić te ustawienia.