Warning: Cannot modify header information - headers already sent by (output started at /homez.318/rsdownlo/www/kursphp/wp-config.php:1) in /homez.318/rsdownlo/www/kursphp/wp-content/plugins/ozh-who-sees-ads/wp_ozh_whoseesads.php on line 620

Warning: Cannot modify header information - headers already sent by (output started at /homez.318/rsdownlo/www/kursphp/wp-config.php:1) in /homez.318/rsdownlo/www/kursphp/wp-content/plugins/ozh-who-sees-ads/wp_ozh_whoseesads.php on line 621
Funkcje | Kurs PHP - stwórz MMORPG

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:

function nazwa_funkcji ( argument )
{
    //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ść.


function funkcja01 ( $a,$b )
{
    if($a>$b)
        return $a;
    echo "gófno";
    return 0;
}

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ś”…

echo funkcja01(5,0);

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:

$c=$b+funkcja01(5,0);

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:

function funkcja01 ( &$a,&$b )
{
    if($a>$b)
        return $a;
    echo "gófno";
     return 0;
}

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ą.

function funkcja01 ( $a,$b=0 )
{
    if($a>$b)
        return $a;
    echo "gófno";
    return 0;
}

echo funkcja01(5);
echo funkcja01(5,0);

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