PHP Dersleri
  Ders -4
 

                                FONKSİYONLAR

Bir bilgisayar programının kalbi, fonksiyonlardır. Fonksiyonlar, bir kere tanımlanır ve
birçok kereler, ihtiyaç olduğu noktada hizmete çağrılır. Fonksiyonlar genellikle bir iş veya
hesaplama yapar ve bunun sonucu olarak ortaya yeni bir değer çıkartır. Bu değere
"fonksiyondan dönen değer" denir.

Fonksiyonların önemini bir örnekle belirtelim. Örneğin internet üzerinde çalışan hesap
makinesi yapmak istiyoruz. Topla, çıkar, çarp ve böl isimli 4 tane fonksiyonumuz olduğunu
varsayalım. Kullanıcı tek tıklama ile isteği sayıların aritmetiksel işlemlerini yapabilmektedir.
Her işlemin kendine ait fonksiyonu bulunmakta ve kullanıcı hangi işlemi seçtiyse o
fonksiyon çağrılmaktadır. Fonksiyon bir kere çağrıldıktan sonra geriye değer döndürür ve bir
dahaki çağrılmasına kadar program içinde görevi biter.


PHP’nin kullanıma hazır birçok fonksiyonu bulunmaktadır. echo() , print() veya printf
bunların başlıcalarıdır. Bu fonksiyonların aldıkları parametre ile ekrana string
yazdırmaktadır.
 

Fonksiyon Tanımlama ve Çağırma

PHP'de fonksiyonlar function komutu ile oluşturulur. Tanımladığımız fonksiyon,
kendisini göreve çağıracak komuttan, yapacağı işlemde kullanmak üzere değer alacaksa, bu
değerlere vereceğimiz değişken isimleri fonksiyon adının yanında parantez içinde gösterilir.
Fonksiyon birden fazla değer bekleyecekse, bunların değişken adlarının arasına virgül
koyarız. Fonksiyona ulaştırılan değerlere argüman denir. Fonksiyon, kendisine bir değer
ulaştırılmasını beklemese bile içi boş parantez koymamız gerekir. Buna göre PHP'de
fonksiyon şöyle yazılır:

function fonksiyonun_adı (argüman1, argüman2, ... argümanN)
{
fonksiyonun yapacağı işe ilişkin komutlar
}

Fonksiyon adları, değişken adları ile aynı kurallara tabidir. Fonksiyon içinden
fonksiyon çağrılabilir; fonksiyonların içinde PHP'nin kendi fonksiyonları kullanılabilir.
Şimdi fonksiyonlarla ilgili basit bir örnek yapalım. Gönderdiğimiz metni ekrana
yazdıran PHP fonksiyonunu yazalım.

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
</head>
<body>
<?
function yazdir($metin)
{
print($metin);
}
yazdir("Bilisim Teknolojileri");
?>
</body>
</html>

Örnekte yazdır isminde bir fonksiyon bulunmaktadır. Bu fonksiyona “Bilişim
Teknolojileri” değerinde bir string gönderilmekte ve fonksiyon içerisinde bulunan print
komutuyla parametre ekrana yazdırılmaktadır.
Fonksiyonlar tek parametre aldıkları gibi birden fazla da parametre alırlar. Şimdi iki
parametre alan bir fonksiyon yazalım.
Örneğin, gireceğimiz iki sayıdan birinci sayı mı yoksa ikinci sayı mı daha büyük bu
karşılaştırmayı yapan ve ekrana yazan fonksiyonu yazalım.

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-
8859-1">
5
</head>
<body>
<?
function buyuksayi($sayi1,$sayi2)
{ if ($sayi1>$sayi2)
print("BiRiNCi SAYI DAHA BÜYÜK");
else
print("iKiNCi SAYI DAHA BÜYÜK");
}
buyuksayi(25,17);
?>
</body>
</html>

Bu örnekte fonksiyonumuza sayi1 ve sayi2 adında iki farklı değişken yani parametre
gönderdik ve fonksiyon içinde if deyimini kullanarak karşılaştırma yaptık ve ekrana büyük
olan sayıyı yazdırdık. Ekran çıktımız "BİRİNCİ SAYI DAHA BÜYÜK" şeklinde olacaktır.
 

Geriye Değer Döndüren Fonksiyonlar


Buraya kadar olan örneklerde sadece hep belirli işi yapan fonksiyonları gördük.
Bunların yanı sıra geriye değer döndüren fonksiyonlar bulunmaktadır. Bu tür fonksiyonlar
belirli bir işlemi yapar ve programda çağrıldı yere değer döndürür.
Basit bir örnekle geriye değer döndüren fonksiyonları pekiştirelim. Girdiğimiz iki
sayının toplamını bulan fonksiyonu yazalım.

<HTML>
<HEAD>
<TITLE>PHP'de Deger Döndüren Fonksiyon</TITLE>
<meta http-equiv="content-type" content="text/html; charset=ISO-
8859-9">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1254">
</HEAD>
<BODY>
<?php
function topla ($sayi1, $sayi2)
{
$sonuc = $sayi1 + $sayi2;
return $sonuc;
}
$sayi1 = 12;
$sayi2 = 5;
print topla($sayi1, $sayi2);
?>
</BODY>
</HTML>

Yaptığımız bu örneği 4 işlem için yazarsak PHP kodumuz şu şekilde olacaktır:

<?php
function topla ($sayi1, $sayi2)
{
$sonuc = $sayi1 + $sayi2;
return $sonuc;
}
function cikart ($sayi1, $sayi2)
{
$sonuc = $sayi1 - $sayi2;
return $sonuc;
}
function carp ($sayi1, $sayi2)
{
$sonuc = $sayi1 * $sayi2;
return $sonuc;
}
function bol ($sayi1, $sayi2)
{
$sonuc = $sayi1 / $sayi2;
return $sonuc;
}
$sayi1 = 20;
$sayi2 = 4;
print topla($sayi1, $sayi2);
print ("<br>");
print cikart($sayi1, $sayi2);
print ("<br>");
print carp($sayi1, $sayi2);
print ("<br>");
print bol($sayi1, $sayi2);
print ("<br>");
?>
Varsayılan Değer Alan Argümanlı Fonksiyonlar
Bazı fonksiyonlarda değerleri önceden varsayılan olarak belirlenmiş parametreler
bulunur. Bu fonksiyonlarda değeri girilmemiş eksik parametre veya argüman varsa
programımız hata vermeden çalışır. Çünkü daha önceden belirlediğimiz varsayılan değeri
alır. Aşağıdaki örneği dikkatlice inceleyiniz. Örnekte iki sayının çarpım işlemi
yapılmaktadır. Ancak sayılardan herhangi biri girilmediği takdirde varsayılan değeri 1 olarak
almakta ve geriye o değeriyle değer döndürmektedir

<HTML>
<HEAD>
<TITLE>PHP'de varsayýlan deðeri alan Fonksiyon</TITLE>
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-9">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1254">
</HEAD>
<BODY>
<?php
function carp ($sayi1 = 1, $sayi2 = 1)
{
$sonuc = $sayi1 * $sayi2;
return $sonuc;
}
$birincisayi = 20;
$ikincisayi = 4;
print carp($birincisayi, $ikincisayi);
print ("<br>");
print carp($birincisayi);
print ("<br>");
print carp();
?>
</BODY>
</HTML>

Browserdaki çıktımız sırasıyla 80, 20 ve 1 şeklinde olacaktır.

Global Değişkenli Fonksiyonlar

Fonksiyonlar sadece kendi içlerinde bulunan değişkenleri kullanabilir. Programda yer
alan değişkenleri kullanamaz. Bu değişkenleri kullanabilmeleri için global ifadesini
kullanmamız gerekir.

<?php
$sayi = 25;
function yazdir ()
{
print ($sayi);
}
yazdir();
?>

örnek kodda $sayi değişkeni fonksiyon
dışında olduğu için yazdir() fonksiyonu içinde herhangi
bir değer yazdırılamayacaktır. Dolayısıyla ekran çıktısı
boş olacaktır.

<?php
$sayi = 25;
function yazdir ()
{ global $sayi;
print ($sayi);
}
yazdir();
?>

Bu kodda ise önemli bir fark bulunmaktadır.
Fonksiyon içinde bulunan global $sayi satırı ile fonksiyon
dışında bulunan $sayi değişkeni fonksiyon içinde
kullanılmaktadır. Ve ekrana 25 değeri yazdırılmaktadır.

Statik (Durağan) Değişkenli Fonksiyonlar


Fonksiyonlarımızda kullandığımız değişkenler fonksiyonun işi bittiği zaman ilk değeri
ne ise o değerini alır yani diğer bir deyişle değişken ölür. Fonksiyonun ikinci veya daha
sonra çağırıldığı zamanlarda değişkenlerinin en son değerlerine ihtiyacımız olabilir. Bunun
için static ifadesini kullanabiliriz.

<?php
function saydir () {
static $sayi = 0;
$sayi++;
print ("<h3>Fonksiyonun tuttuğu sayı: $sayi </h3>");
}
// Başka kodlar buraya girebilir
print ("<h2>Fonksiyonun birinci kez çağrılması:</h2>");
saydir();
print ("<h2>Fonksiyonun ikinci kez çağrılması:</h2>");
saydir();
print ("<h2>Fonksiyonun üçüncü kez çağrılması:</h2>");
saydir();
print ("<h2>Fonksiyonun dördüncü kez çağrılması:</h2>");
saydir();
?>
Örnekte saydir() isimli bi fonksiyonumuz var bu fonksiyonda bulunan static değişken
sayesinde $sayi değişkeninin değeri her çağrıldığında bir sayı artırılmakta ve en son değeri
kalıcı olmaktadır.

 Ekran çıktısı
Fonksiyonun birinci kez çağrılması:
Fonksiyonun tuttuğu sayı: 1
Fonksiyonun ikinci kez çağrılması:
Fonksiyonun tuttuğu sayı: 2
Fonksiyonun üçüncü kez çağrılması:
Fonksiyonun tuttuğu sayı: 3
Fonksiyonun dördüncü kez çağrılması:
Fonksiyonun tuttuğu sayı: 4

 
 
  Bugün 4 ziyaretçi (6 klik) kişi burdaydı! Untitled Document

 

 

Yıldız SoftWare Giriş

 

Kullanıcı ID :
Şifre :
Giriş Seçenekleri

 
 
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol