PHP Fonksiyonlar (Functions)
Fonksiyonlar, program içinde tekrar eden işleri küçük parçalara ayırarak (modüler) kullanmamızı sağlar. Parametre (girdi) alabilir, işlem yapar ve istenirse return ile bir değer döndürür.
<?phpkullan (kısa tag<?bazı sunucularda kapalıdır).- Fonksiyon isimleri büyük/küçük harfe duyarsız olsa da (PHP), standart olarak küçük harf + snake_case önerilir.
- Return fonksiyonu bitirir. Değer döndürmeyeceksen bile
return;ile erken çıkış yapabilirsin. - Parametreler için varsayılan değer ve tip tanımı (type hint) modern PHP’de çok kullanılır.
Fonksiyon Kullanımı ile İlgili Kurallar
- Fonksiyon isimleri programcı tarafından belirlenir.
- Parametreler fonksiyon isminden sonra parantez içinde yazılır.
- Birden fazla parametre varsa virgül ile ayrılır.
- Fonksiyon gövdesi
{ }arasına yazılır. - Sonucu dışarı vermek için
returnkullanılır. - Fonksiyonlar yalnızca çağrıldıklarında çalışır.
- Aynı fonksiyon istenildiği kadar çağrılabilir.
Fonksiyon Tanımlama Şablonu
<?php
function fonksiyon_adi($parametre1, $parametre2) {
// işlemler
return $sonuc;
}
?>
Örnek: İki sayıyı çarpan fonksiyon
Aşağıdaki örnekte fonksiyon iki parametre alır, çarpar ve sonucu return ile geri döndürür.
(Not: Function/Return büyük yazılabilir ama standart küçük yazılır.)
<?php
function carp($x, $y) {
$sonuc = $x * $y;
return $sonuc;
}
echo "İki sayının çarpımı = " . carp(3, 5);
?>
Varsayılan Parametreler (Default Values)
Parametre verilmezse kullanılacak varsayılan değer tanımlanabilir. Varsayılanı olan parametreler genelde sona yazılır.
<?php
function selamla($ad = "Misafir") {
return "Merhaba " . $ad;
}
echo selamla(); // Merhaba Misafir
echo "<br>";
echo selamla("Mehmet"); // Merhaba Mehmet
?>
Tip Tanımı ve Dönüş Tipi (Modern PHP)
Parametre ve dönüş tipi belirlemek hataları azaltır ve kodu daha okunur yapar.
<?php
function carp_int(int $x, int $y): int {
return $x * $y;
}
function ortalama(array $sayilar): float {
if (count($sayilar) === 0) return 0.0;
return array_sum($sayilar) / count($sayilar);
}
echo carp_int(3, 5); // 15
echo "<br>";
echo ortalama([10, 20, 30]); // 20
?>
declare(strict_types=1); (tip dönüşümlerini daha sıkı yapar)
Referans ile Parametre Göndermek (&)
Bazı durumlarda fonksiyonun parametreyi “yerinde” değiştirmesini istersin. Bu durumda referans kullanılabilir. (Dikkatli kullanılmalı.)
<?php
function sayiyi_arttir(&$n) {
$n = $n + 1;
}
$sayi = 10;
sayiyi_arttir($sayi);
echo $sayi; // 11
?>
Değişken Sayıda Parametre (Variadic) ...$args
Çok kullanılan bir pratik: sınırsız sayıda parametre alıp toplamak gibi.
<?php
function topla(int ...$sayilar): int {
return array_sum($sayilar);
}
echo topla(1, 2, 3, 4); // 10
?>
Anonim Fonksiyonlar ve Arrow Function
Özellikle array_map, array_filter gibi fonksiyonlarla beraber çok kullanılır.
<?php
$sayilar = [1,2,3,4,5,6];
// Çiftleri filtrele
$ciftler = array_values(array_filter($sayilar, fn($x) => $x % 2 === 0));
print_r($ciftler); // [2,4,6]
?>
Değişken Kapsamı (Scope) ve global
Fonksiyon içindeki değişkenler varsayılan olarak lokaldir. Dışarıdaki değişkene erişmek istersen
parametre ile göndermek en doğrusudur. Mecbur kalırsan global kullanılabilir.
<?php
$katsayi = 2;
function carp_global($x) {
global $katsayi;
return $x * $katsayi;
}
function carp_parametre($x, $katsayi) {
return $x * $katsayi;
}
echo carp_global(10); // 20
echo "<br>";
echo carp_parametre(10, 3); // 30
?>