Funkcje w PHP
Funkcje, to w PHP, a także innych językach programowania, bardzo wygodny sposób na wielokrotne wykorzystanie tego samego kodu i to w sposób sparametryzowany. Poniższy film ilustruje klasyczne pojęcie funkcji w dowolnym języku programowania.
Deklaracja funkcji jest prosta. Ma następującą postać (parametry są opcjonalne):
... kod funkcji ...
}
nazwa_funkcji(argument1, argument2, ...) // tutaj następuje wywołanie funkcji
W przypadku, gdy chcemy zwrócić jakąś wartość funkcji, stosujemy słowo kluczowe return i nazwę zmiennej, która zawiera tę wartość. Konstrukcja takiej funkcji jest następująca:
... kod funkcji ...
return zmienna;
}
var zmienna_1 = nazwa_funkcji(argument1, argument2, ...) // tutaj następuje wywołanie funkcji i przypisanie wartości funkcji do zmiennej
Przykłady stosowania funkcji
Oto kilka przykładów stosowania funkcji w PHP.
Przykład 1 - funkcja bez parametrów i słowa kluczowego return.
Przykład ten ilustruje najprostsze wykorzystanie funkcji. Funkcja ma za zadanie wyświetlić napis.
<?php function wyswietl() { echo 'Kocham Olę'; } wyswietl(); ?>
Przykład 2 - wykorzystanie parametru przekazywanego do funkcji.
Przykład ten ilustruje sposób przekazywania parametrów do funkcji. Funkcja ma za zadanie wyświetlić wartość zmiennej, którą programista wpisze jako parametr wywołania funkcji.
<?php function wyswietl($komunikat) { echo $komunikat; } wyswietl("Kocham Olę!"); wyswietl("Kocham Jolę!"); ?>
Przykład 3 - Prosty kalkulator podatku VAT.
Przykład ten ilustruje sposób przekazywania parametru liczbowego do funkcji. Funkcja oblicza wartość podatku VAT od ceny netto, przekazywanej jako argument funkcji i wyświetla go w okienku alarmu.
<?php function VAT($cena_netto) { echo "Podatek VAT (stawka 23%) od ceny netto ".$cena_netto." zł wynosi ".$cena_netto *0.23." zł.<br>";} VAT(200); VAT(100); ?>
Przykład 4 - Przykład funkcji zwracającej wartość logiczną.
Funkcja ma za zadanie sprawdzenie, czy dana liczba (przekazany parametr) jest parzysta, czy nieparzysta. Jeżeli jest parzysta, to funkcja zwraca wartość true, w przeciwnym przypadku zwraca wartość false; Program główny, w zależności od tego, jaki uzyska wynik zwrotny od funkcji, wyświetla odpowiedni komunikat. Dodam tylko, że skorzystamy tutaj z własności liczb parzystych, dla których reszta z dzielenia jest równa zero (dla każdej liczby parzystej).
<?php function czyParzysta($liczba) { if ($liczba % 2 == 0) { return true; } else { return false; } } $n = 23543256; if (czyParzysta(n) == true) { echo "Liczba " . $n . " jest parzysta"; } else { echo "Liczba " . $n . " jest nieparzysta"; } ?>
Domyślne argumenty funkcji
W PHP możemy parametrom (argumentom) funkcji przypisać określone wartości domyślne, wówczas,nie musimy ich podawać podczas wywoływania naszej funkcji.
... kod funkcji ...
}
nazwa_funkcji() // tutaj następuje wywołanie funkcji
Dodatkowo w PHP od wersji 7 można jawnie deklarować typ argumentów:
... kod funkcji ...
}
Zasięg zmiennych w PHP
Jeżeli zmienną zadeklarujemy w samej funkcji, zmienna ta będzie widoczna tylko w tej funkcji. Jest to zmienna lokalna.
Zmienna zadeklarowana poza funkcją może być wykorzystana poza funkcją, ale w samej funkcji nie jest widoczna.
Przykład 5 - zmienne lokalne i globalne.
Przykład ilustruje widoczność zmiennych w kodzie programu PHP.
<?php $x_global = 2; // TO JEST ZMIENNA GLOBALNA function mojaFunkcja() { $y_local = 1; // TO JEST ZMIENNA LOKALNA echo 'Wywołanie z ciała funkcji:<br>'; echo 'zmienna x_global ma wartość: '.$x_global.'<br>'; echo 'zmienna y_local ma wartość: '.$y_local.'<br>'; } mojaFunkcja(); echo 'Wywołanie spoza ciała funkcji:<br>'; echo 'zmienna x_global ma wartość: '.$x_global.'<br>'; echo 'zmienna y_local ma wartość: '.$y_local.'<br>'; ?>
Zatem w jaki sposób zmienić widoczność zmiennych?
Są dwa sposoby:
- użycie zmiennej super-globalnej $GLOBALS['nazwa zmiennej']
- użycie słowa kluczowego global.
Przerobimy nasz przykład 5, tak, aby działał:
Przykład 5 - zmienne lokalne i globalne.
Przykład ilustruje widoczność zmiennych w kodzie programu PHP.
<?php $x_global = 2; function mojaFunkcja() { global $y_local; $y_local = 1; echo 'Wywołanie z ciała funkcji:<br>'; echo 'zmienna x_global ma wartość: '.$GLOBALS['x_global'].'<br>'; echo 'zmienna y_local ma wartość: '.$y_local.'<br>'; } mojaFunkcja(); echo 'Wywołanie spoza ciała funkcji:<br>'; echo 'zmienna x_global ma wartość: '.$x_global.'<br>'; echo 'zmienna y_local ma wartość: '.$y_local.'<br>'; ?>
Zmienne statyczne w PHP
Jeżeli na początku funkcji użyjemy przypisania na przykład $zmienna=1, to za każdym razem, gdy zostanie wywołana funkcja, wartość tej zmiennej zostanie ustawiona na jeden.
Jeżeli użyjemy deklaracji:
static $zmienna=1;
to przypisanie wartości 1 zostanie zrealizowane tylko przy pierwszym wywołaniu funkcji, natomiast w kolejnym zapamiętana zostanie ostatnia wartość tej zmiennej.
Zobaczmy to na przykładzie:
Przykład 6 - zmienne statyczne.
Przykład ilustruje widoczność zmiennych w kodzie programu PHP.
<?php function mojaFunkcja() { static $i = 100; echo $i.'<br>'; $i-= 1; } mojaFunkcja(); mojaFunkcja(); mojaFunkcja(); mojaFunkcja(); ?>
© medianauka.pl, 2021-09-05, A-4180
Data aktualizacji artykułu: 2024-06-29