PHP Fonksiyonlar (Functions)

PHP'de fonksiyonların kullanımı, tanımlanması ve örnekleri gibi bir çok farklı alandaki bilgiyi bu konumuzda anlatıyoruz. Bu konumuzda; PHP Fonksiyon Nedir? PHP Fonksiyon Nasıl Tanımlanır? PHP Fonksiyon Örnekleri Nelerdir? gibi bir çok sorunun cevabına ulaşabilirsiniz.

PHP Fonksiyonlar (Functions)

PHP Fonksiyonlar (Functions)

PHP, belirli bir görevi yerine getirmek için bir betik içinden doğrudan çağrılabilen 1000'den fazla yerleşik fonksiyona sahiptir.

PHP Kullanıcı Tanımlı Fonksiyonlar

Yerleşik PHP fonksiyonlarının yanı sıra, kendi fonksiyonlarınızı oluşturmanız da mümkündür.

  • Bir fonksiyon, bir programda tekrar tekrar kullanılabilen bir deyimler bloğudur.
  • Bir fonksiyon sayfa yüklendiğinde otomatik olarak çalışmaz.
  • Bir fonksiyon, fonksiyona yapılan bir çağrı ile çalıştırılır.

PHP'de Kullanıcı Tanımlı Fonksiyon Oluşturma

Sözdizimi

function fonksiyonAdi() {
  çalıştırılacak kod;
}

Not: Bir fonksiyon adı bir harf veya alt çizgi ile başlamalıdır. Fonksiyon adları büyük/küçük harfe duyarlı DEĞİLDİR.

Aşağıdaki örnekte, "mesajYaz()" adında bir fonksiyon oluşturuyoruz. Açılış küme parantezi ( { ) fonksiyon kodunun başlangıcını, kapanış küme parantezi ( } ) ise fonksiyonun sonunu gösterir. İşlev "Merhaba dünya!" çıktısını verir. Fonksiyonu çağırmak için, sadece adını ve ardından parantezleri () yazmanız yeterlidir.

<?php
function mesajYaz() {
  echo "Merhaba dünya!";
}

mesajYaz(); // fonksiyonu çağır
?>

PHP Fonksiyon Değişkenleri

Aşağıdaki örnekte, bir değişkeni ($kAdi) olan bir fonksiyon bulunmaktadır. kisiAdi() fonksiyonu çağrıldığında, bir isim (örneğin Ali) de iletiyoruz ve bu isim fonksiyonun içinde kullanılır. Fonksiyon, birbirinden farklı birçok ilk ismi çıktı olarak verirken, soyadı aynı kalır.

<?php
function kisiAdi($kAdi) {
  echo "$kAdi Ali.<br>";
}

kisiAdi("Ayşe");
kisiAdi("Fatma");
kisiAdi("Hayriye");
kisiAdi("Hüseyin");
kisiAdi("Ahmet");
?>

Aşağıdaki örnekte iki değişkeni ($kAdi ve $yil) olan bir fonksiyon bulunmaktadır.

<?php
function kisiBilgi($kAdi, $yil) {
  echo "$kAdi Ali. $yil 'de doğdu <br>";
}

kisiBilgi("Ayşe", "1975");
kisiBilgi("Fatma", "1978");
kisiBilgi("Hayriye", "1983");
?>

PHP Esnek Tipli Bir Dildir

Yukarıdaki örnekte, PHP'ye değişkenin hangi veri türünde olduğunu söylemek zorunda olmadığımıza dikkat edin.

PHP, değişkene değerine bağlı olarak otomatik olarak bir veri türü atar. Veri tipleri kesin bir şekilde belirlenmediğinden, bir tamsayıya string eklemek gibi şeyleri bir hataya neden olmadan yapabilirsiniz.

PHP 7'de tür bildirimleri eklenmiştir. Bu bize bir fonksiyonu bildirirken beklenen veri türünü belirtme seçeneği sunar ve katı bildirimi ekleyerek, veri türü uyuşmazsa bir "Kritik Hata" verir.

Aşağıdaki örnekte, strict kullanmadan fonksiyona hem bir sayı hem de bir dize göndermeyi deniyoruz.

<?php
function sayiEkle(int $a, int $b) {
 return $a + $b;
}
echo sayiEkle(5, "5 gün");
// strict etkin OLMADIĞI için "5 gün" int(5) olarak değiştirilir ve 10 döndürür
?>

strict özelliğini belirtmek için declare(strict_types=1); ayarını yapmamız gerekir. Bu PHP dosyasının ilk satırında olmalıdır.

Aşağıdaki örnekte, fonksiyona hem bir sayı hem de bir dize göndermeye çalışıyoruz, ancak burada strict bildirimini ekledik.

<?php declare(strict_types=1);

function sayiEkle(int $a, int $b) {
  return $a + $b;
}
echo sayiEkle(5, "5 gün");
// strict etkin olduğundan ve "5 gün" bir tamsayı olmadığından, bir hata atılacaktır
?>

PHP Varsayılan Değişken Değeri

Aşağıdaki örnekte varsayılan bir parametrenin nasıl kullanılacağı gösterilmektedir. yukseklikAyarla() fonksiyonunu değişken olmadan çağırırsak, değişken olarak varsayılan değeri alır.

<?php declare(strict_types=1); 
function yukseklikAyarla(int $minYukseklik = 50) {
  echo "Yükseklik : $minYukseklik <br>";
}

yukseklikAyarla(350);
yukseklikAyarla(); // varsayılan değer olan 50'yi kullanacaktır.
yukseklikAyarla(135);
yukseklikAyarla(80);
?>

PHP Fonksiyonları - Değer Döndürme

Bir fonksiyonun bir değer döndürmesini sağlamak için return deyimini kullanırız.

<?php declare(strict_types=1);
function sum(int $x, int $y) {
  $z = $x + $y;
  return $z;
}

echo "5 + 10 = " . sum(5, 10) . "<br>";
echo "7 + 13 = " . sum(7, 13) . "<br>";
echo "2 + 4 = " . sum(2, 4);
?>

PHP Dönüş Türü Tanımlamaları

PHP 7 ayrıca return deyimi için tür bildirimlerini de destekler. Fonksiyon değişkenleri için tür bildiriminde olduğu gibi, katı gereksinimi etkinleştirerek, tür uyuşmazlığında bir "Kritik Hata" verecektir.

Fonksiyon dönüşü için bir tür bildirmek için, fonksiyonu bildirirken iki nokta üst üste ( : ) ve açılış küme ( { )parantezinden hemen önce türü ekleyin.

Aşağıdaki örnekte fonksiyonun geri dönüş tipini belirtiyoruz.

<?php declare(strict_types=1);
function sayiEkle(float $a, float $b) : float {
  return $a + $b;
}
echo sayiEkle(1.2, 5.2);
?>

Değişken türlerinden farklı bir dönüş türü belirtebilirsiniz, ancak dönüşün doğru türde olduğundan emin olun:

<?php declare(strict_types=1);
function sayiEkle(float $a, float $b) : int {
  return (int)($a + $b);
}
echo sayiEkle(1.2, 5.2);
?>

Değişkenleri Referansla Geçme

PHP'de değişkenler genellikle değer ile aktarılır, bu da değerin bir kopyasının fonksiyonda kullanıldığı ve fonksiyona aktarılan değişkenin değiştirilemeyeceği anlamına gelir.

Bir fonksiyon değişkeni gönderimle aktarıldığında, bağımsız değişkende yapılan değişiklikler aktarılan değişkeni de değiştirir.

Bir fonksiyon değişkenini referansa dönüştürmek için & operatörü kullanılır.

<?php
function besEkle(&$deger) {
  $deger += 5;
}

$num = 2;
besEkle($num);
echo $num;
?>

Tepkiniz Nedir?

like

dislike

love

funny

angry

sad

wow