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):

function nazwa_funkcji(parametr1, parametr2, ...) {
... 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:

function nazwa_funkcji(parametr1, parametr2, ...) {
... 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.

function nazwa_funkcji(parametr1=wartość1, parametr2=wartość2, ...) {
... kod funkcji ...
}

nazwa_funkcji() // tutaj następuje wywołanie funkcji

Dodatkowo w PHP od wersji 7 można jawnie deklarować typ argumentów:

function nazwa_funkcji(typ1 parametr1, typ2 parametr2, ...) {
... 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:

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



Udostępnij
©® Media Nauka 2008-2023 r.