Określ dane wejściowe i wynik
Funkcja to nazwany fragment kodu, który możesz wywołać. Parametry opisują dane przyjmowane przy wywołaniu, a return zwraca wynik. Ten kompletny przykład PHP 8+ tworzy powitanie, a następnie je wypisuje:
<?php
declare(strict_types=1);
function greeting(string $name): string
{
return "Hello, " . $name . "!";
}
echo greeting("Ada") . PHP_EOL;
Wynik
Hello, Ada!
Wynik to Hello, Ada! i nowa linia. $name jest parametrem, a "Ada" argumentem przekazanym w konkretnym wywołaniu. Deklaracje string określają typ parametru i wyniku. strict_types w tym pliku włącza ścisłe sprawdzanie typów skalarnych przy wywołaniach funkcji z tego pliku.
Zachowaj czytelną odpowiedzialność
Funkcja greeting buduje tekst. Nie zapisuje go w bazie ani nie wysyła wiadomości. echo znajduje się poza funkcją, więc możesz użyć zwróconego tekstu w innym miejscu. Rozdzielenie tworzenia wartości od jej wyświetlenia ułatwia sprawdzenie zachowania.
Nie każda funkcja musi być pozbawiona efektów ubocznych. Zapis pliku lub wysłanie wiadomości to rzeczywiste zadania programu. Gdy ich potrzebujesz, nazwij je w poleceniu. „Zwróć powitanie” i „wyślij email z powitaniem” mają inny zakres.
Sprawdź zwykłe i nietypowe dane
Wywołaj funkcję dla innego imienia i pustego tekstu. W obecnej wersji pusty tekst daje Hello, !. Kod realizuje opisaną operację, ale to Ty ustalasz, czy taki wynik jest dopuszczalny. Możesz wymagać odrzucenia pustego imienia albo użycia powitania bez imienia.
Test jest zapisem oczekiwanego zachowania. Przed zleceniem testów ustal oczekiwanie. Agent nie powinien zgadywać, czy spacje oznaczają poprawne imię i czy należy je usuwać. W większym projekcie sprawdź istniejące reguły walidacji przed dodaniem kolejnych.
Zleć agentowi ograniczone zadanie
Przykładowe polecenie: „Zmień greeting tak, aby pusty tekst dawał Hello!. Zachowaj wynik dla Ada. Funkcja ma zwracać tekst i nie wykonywać zapisu ani wysyłki. Dodaj sprawdzenie tych dwóch przypadków w istniejącym systemie testów”.
Granica zadania jest czytelna: jedna funkcja i dwa wyniki. Jeśli agent proponuje klasę lub bibliotekę, zapytaj o wymaganie uzasadniające ten koszt. Do funkcji wrócisz w dalszej nauce PHP w Kodivo. Szczegóły sprawdzaj w dokumentacji funkcji i deklaracji typów.