PHP - funkcje

podstawy

Deklaracja funkcji i jej wywołanie przedstawia się następująco:

	<?php		
	function nazwa() {
		instrukcje
	}	

	nazwa();
	?>
	

Wywołując funkcję w dowolnym miejscu strony spowodujemy jej wykonanie.
Możemy to wykorzystać wywołując dany fragment kodu wielokrotnie na stronie, bądź dołączając plik z funkcjami wywoływać je na wielu stronach naszej witryny.

Najprostsze wywołanie funkcji:

	<?php		
	function witaj() {
		echo "Witaj świecie!";
	}	
	
	witaj();
	?>
	
wynik: Witaj świecie

Funkcja może przyjmować parametry wejściowe.
Są to przekazywane do wnętrza funkcji wartości, którymi możemy wewnątrz niej operować.
Parametry wejściowe funkcji podajemy wewnątrz nawiasu okrągłego.

	<?php		
	function witaj($imie) {
		echo "Witaj $imie";
	}	
	
	witaj("Tomek");
	witaj("Ania");
	?>
	
wynik: Witaj Tomek
Witaj Ania

Możemy równie podać więcej niż jeden parametr:

	<?php		
	function pies($imie, $rasa) {
		echo "Mój pies $imie to $rasa";
	}	
	
	pies("Azor", "owczarek");
	witaj("Fifi", "malamut");
	?>
	
wynik: Mój pies Azor to owczarek
Mój pies Fifi to malamut

Możemy również ustawić domyślną wartość parametru wejściowego.
W przypadku, gdy podczas wywołania funkcji nie podamy jego wartości, zostanie wykorzystana wartość domyślna.

	<?php		
	function ustawMin($min = 50) {
		echo "Min wynosi $min";
	}	
	
	ustawMin(100);
	ustawMin();
	ustawMin(200);
	?>
	
wynik: 100
50
200

Zwracanie wartości przez funkcję
Czynność wykonywana jest za pomocą polecenia return.
Poniżej przykład wykorzystania zwracania przez funkcję wartości:
	<?php		
	function suma($a, $b) {
		$suma = $a + $b;
		return $suma;
	}	
	
	echo suma(10, 20);
	echo suma(0, 11);
	echo suma(100, 200);
	?>
	
wynik: 30
11
300

Funkcja zwracająca konkretny typ danych
Domyślnie PHP zwraca typ danych, który najbardziej pasuje. Od PHP 7 możemy jednak zadeklarować przez nas wybrany typ danych, który ma zostać zwrócony przez funkcję. Należy po nawiasach użyć znaku „:” a po nim napisać typ danych jak ma zostać zwracany.

Przykład:

	<?php	
	function sum($a,$b):int {
		return $a+$b;
	}	

	echo sum(3.14,13.37); // 16
	?>	
	

Dynamiczne wywoływanie funkcji
Co jeśli chcemy wywołać funkcję używając innej nazwy?
Wystarczy w tym celu przypisać nazwę funkcję jako wartość do nazwy zmiennej, do której będziemy chcieli się odwołać jako funkcji:
	<?php
	 
	function sum($a,$b) {
		return $a+$b;
	}
	 
	$dodaj = "sum";
	echo $dodaj(12,5); // 17		
	

Funkcję też możemy zapisać jako wartość zmiennej i wtedy będzie to funkcja anonimowa.

	<?php
		
	$dodaj = function ($a,$b) {
		return $a+$b;
	};
	echo $dodaj(12,5); // 17		
	
W wyżej wymienionym przypadku nie zapomnij o zakończeniu instrukcji używając ;.

Funkcja ze zmienną liczbą argumentów
Gdy nie wiemy ile argumentów ma zostać przesłane do funkcji, może skorzystać ze tzw. splat operator
– należy wówczas dopisać „” przed nazwą zmiennej.
Umożliwia on nam przesłanie dowolnej liczby argumentów.

Przykład:

<?php
 
function sum(...$numbers) {
    $sum = 0;
    foreach($numbers as $number) {
        $sum += $number;
    }
    return $sum;
}
echo sum(1,3,3,7); // 14		
	
Pamiętaj o tym, że tylko ostatni parametr funkcji może używać splat operator’a – gdyż wprowadzenie dalszych parametrów nie ma sensu, ponieważ i tak nie zostaną one odczytane.

W poprzednich wersjach PHP korzystało się z funkcji func_get_args, aby zrobić funkcję ze zmienną liczbą argumentów.
Ze splat operator’a możemy też skorzystać przesyłając tablice jako argument:

<?php
 
function sum(...$numbers) {
    $sum = 0;
    foreach($numbers as $number) {
        $sum += $number;
    }
    return $sum;
}
$numbers[] = 1;
$numbers[] = 5;
 
echo sum(...$numbers); // 6		
	

Projekt i wykonanie: Ryszard Rogacz© 1999−2024