Funkcje strzałkowe
Część sekcji Logika i przepływ programu ścieżki PHP w Coddy. Lekcja 3 z 68.
Funkcje strzałkowe, wprowadzone w PHP 7.4, umożliwiają zwięźlejszy zapis prostych funkcji anonimowych. Używają słowa kluczowego fn zamiast pełnej składni function, dzięki czemu kod jest krótszy i czytelniejszy.
Oto jak utworzyć funkcję strzałkową:
<?php
$greeting = fn($name) => "Hello, " . $name . "!";
echo $greeting("Alice"); // Wyświetla: Hello, Alice!
?>Zwróć uwagę na kluczowe różnice: funkcje strzałkowe używają fn zamiast function, mają strzałkę => wskazującą wyrażenie i nie potrzebują nawiasów klamrowych ani instrukcji return w przypadku prostych wyrażeń.
Największą zaletą funkcji strzałkowych jest to, że automatycznie przechwytują zmienne z zakresu nadrzędnego — nie jest potrzebne słowo kluczowe use:
<?php
$message = "Welcome";
$greeting = fn($name) => $message . ", " . $name . "!";
echo $greeting("Bob"); // Wyświetla: Welcome, Bob!
?>Funkcje strzałkowe doskonale nadają się do krótkich, prostych operacji, w przypadku których tradycyjna składnia funkcji anonimowych wydaje się zbyt rozwlekła.
Wyzwanie
ŁatwyUtwórz funkcję strzałkową, która przyjmuje nazwę produktu jako parametr i zwraca sformatowaną etykietę produktu. Funkcja strzałkowa powinna przechwytywać nazwę kategorii z otaczającego zakresu.
Otrzymasz dwa dane wejściowe: nazwę kategorii i nazwę produktu. Wczytaj oba dane, utwórz funkcję strzałkową, która przechwytuje kategorię i formatuje etykietę produktu w formacie "[Category] Product", wywołaj funkcję strzałkową z nazwą produktu i wypisz wynik.
Format wejściowy: Dwa wiersze — pierwszy wiersz zawiera nazwę kategorii, drugi wiersz zawiera nazwę produktu
Oczekiwany wynik: Sformatowana etykieta produktu w formacie "[Category] Product"
Spróbuj swoich sił
<?php
// Odczytaj dane wejściowe
$category = trim(fgets(STDIN));
$product = trim(fgets(STDIN));
// TODO: Napisz swój kod poniżej
// Utwórz funkcję strzałkową, która przechwytuje kategorię i formatuje etykietę produktu
// Wywołaj funkcję strzałkową i wyświetl wynik
echo $result;
?>Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ programu
1Zaawansowane funkcje
Funkcje anonimoweDomknięcia i „use”Funkcje strzałkoweFunkcje zwrotneUżywanie „call_user_func”Funkcje zmiennePrzekazywanie przez referencjęFunkcje rekurencyjnePowtórka: przegląd funkcji4Tablice wielowymiarowe
Tworzenie tablicy 2DDostęp do elementów tablicy 2DModyfikowanie elementów tablicy 2DIterowanie z użyciem zagnieżdżonych pętliAsocjacyjne tablice 2DPodsumowanie: ćwiczenie z prostą siatką2Zaawansowane operacje na tablicach
Dodawanie za pomocą 'array_push'Usuwanie za pomocą 'array_pop'Dodawanie za pomocą 'array_unshift'Usuwanie za pomocą 'array_shift'Łączenie tablic indeksowanychŁączenie tablic asocjacyjnychWyodrębnianie za pomocą 'array_slice'Wyszukiwanie wartości za pomocą 'in_array'Wyszukiwanie kluczy za pomocą 'array_search'Podsumowanie: ćwiczenie z playlistą3Sortowanie tablic
Sortowanie tablic indeksowanych rosnącoSortowanie tablic indeksowanych malejącoSortowanie tablic asocjacyjnych według wartościSortowanie tablic asocjacyjnych według kluczaSortowanie w kolejności naturalnejSortowanie niestandardowe za pomocą 'usort'Podsumowanie: sortowanie tabeli wynikówPoćwicz samodzielnie: Kompilator PHP online