16 września
Funkcje
Czasami (i to nie raz, nie dwa) przyjdzie nam wykorzystywać ten sam kawałek kodu kilka, kilkanaście razy. Jeśli się da, to z podanego kodu tworzymy funkcję. Dlaczego? Ponieważ można ją wykorzystać kilka razy bez konieczności przepisywania kodu po raz wtóry. Z założenia funkcja wygląda w ten sposób:
{
//skrypt działania funkcji
return 0;
}
Przed samą funkcją stoi słowo klucz function. Używając go dajemy znać, że zaraz zaczniemy opisywać funkcję. Następnie podajemy nazwę funkcji, a w nawiasach argumenty, które nam będą potrzebne. Cała funkcja znajduję się w klamrach {} , a na końcu jest użyte słowo klucz return (tłumacząc na polski - zwróć). Jest to wartość zwracana (w tym przykładzie jest to 0). Może być to zarówno liczba, string, wartość zmiennej lub obiekt - nie będzie miało to znaczenia. Co ważne, po wykonaniu polecenia return nie są wykonywane dalsze polecenia. Można to wykorzystać na swoją korzyść.
W powyższym przykładzie widać, że jeśli warunek w środku funkcji będzie spełniony, to polecenie wyświetlające tekst nie zostanie wykonane i na monitorze nie pojawi się nam “gófno” (chociaż jakby nie patrzeć - gówno (nic) się nam pojawi na monitorze). Jest to przydatne szczególnie przy mocno rozbudowanych warunkach i pętlach - zamiast zastanawiać się, w którym miejscu i jak przerwać wszystkie pętle, po prostu używamy return i kończymy działanie funkcji. A co nam w ogóle daje return? Zwraca “coś”…
Tak między innymi używa się funkcji. Co zostanie wyświetlone przez polecenie echo? To, co zostało zwrócone przez funkcję (w tym akurat przypadku liczba 5). Można oczywiście zrobić też coś takiego:
I będzie to jak najbardziej poprawne i do wykonania. A teraz dwa słowa odnośnie argumentów - przekazujemy je w nawiasie po nazwie funkcji, po przecinku. Jeśli zrobimy tak jak jest to w przykładzie z funkcją funkcja01, do działania w funkcji zostaną utworzone kopii zmiennych (jest to tak zwane przekazanie argumentu przez wartość), a co za tym idzie, jakiekolwiek zmiany dokonamy na zmiennych - nie zostaną one zachowane w głównym wątku skryptu.
Czasami jednak chcemy zmienić zmienne przekazane do funkcji uległy zmianie - jest to czasami wygodniejsze niż przekazywanie wszystkich przetworzonych wartości za pomocą return. W tym celu musimy przekazać argumenty przez referencję. Jak to zrobić? Banalnie prosto - przed zmienną dostawiamy znak &. Czyli mniej więcej tak:
Teraz jakiekolwiek zmiany dokonane na zmiennych w środku funkcji, zostaną zapisane w całym wykonywanym skrypcie. I jeszcze jedna ważna rzecz odnośnie argumentów - mogą one posiadać wartości domyślne. Oznacza to, że jeśli nie przekażemy przy wywołaniu funkcji żadnej zmiennej, argument przybierze wartość domyślną.
Oba wywołania funkcji będą działać. Ważne jest, żeby argumenty posiadające wartości domyślne znajdowały się po prawej stronie (inaczej może się sypać przy złym wywołaniu). I to chyba wszystko z podstawowych informacji na temat funkcji. W następnym odcinku ćwiczenia z funkcjami.

Dodaj swój komentarz