Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Funkcje i klasy anoninowe
Forum PHP.pl > Forum > PHP
StreetFighter
Zastanawiam się do czego mogą służyć klasy i funkcje anonimowe, szukam ale nie mogę zrozumieć co mogę osiągnąć dzięki nim czego nie da się osiągnąć bez nich 😁
Tomplus
Funkcje i klasy anonimowe używasz tam gdzie nie ma potrzeby tworzenia osobnej funkcji, głównie gdy

  1. function isEven($val) {
  2. return $val % 2 == 0;
  3. }
  4. $arr_even = array_filter($arr, 'isEven');
  5.  
  6. function square($val) {
  7. return $val * $val;
  8. }
  9. $arr_square = array_map('square', $arr);


zamiast tego mozesz użyć coś takiego:

  1. $arr = range(0, 10);
  2. $arr_even = array_filter($arr, function($val) {
  3. return $val % 2 == 0;
  4. });
  5.  
  6. $arr_square = array_map(function($val) {
  7. return $val * $val;
  8. }, $arr);


Oczywiście to są proste przykłady, ale dzięki temu nie musisz przejmować się że nazwa funkcji bądź klasy będą powtarzalne w przestrzeni nazw.

W manualu możesz jeszcze coś takiego spotkać:


  1. $greet = function($name)
  2. {
  3. printf("Hello %s\r\n", $name);
  4. };
  5.  
  6. $greet('World');
  7. $greet('PHP');


Czyli coś w stylu zmiennej w zmiennej.

Większość rzeczy korzysta się gdy zachodzi taka potrzeba, więc lepiej mieć narzędzie, niż nie mieć go w ogóle.

materiały do poczytania:
https://www.php.net/manual/en/functions.anonymous.php
https://stackoverflow.com/questions/2412299...unctions-in-php


viking
Przy okazji może Cię też zainteresować metoda __invoke w klasach. Bardzo często jest wykorzystywana w kontrolerach stanowiących pojedynczą odpowiedzialność. W sumie coraz częściej się w ten sposób pisze. Tak samo, obecnie są już klasy anonimowe.
StreetFighter
dzięki za pomoc, troszkę skumałem o co chodzi, także już sobie poradzę
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.