Php Öğreniyorum 8 - Fonksiyonlar
Sonuca bakarsanız karşınıza Online gelecektir. Yani bakın değişken içeriğini alt tarafa yazdığımız bir başka değişkenle değiştirdim. Off amma kafanız karıştı Very Happy Peki olayı şöyle anlatayım. Birinci değişkenin tuttuğu değeri değiştirmeden, ikinci değişkene birinci değişkenin değerini dinamik olarak atadık. Dinamik atama nedeniyle birinci değişkenin değeri değiştiği anda ikinci değişkenin değeri de değişecektir. Biz ikinci değişkeni çağırdığımız sürece istediğimiz an değerleri değiştirebiliriz.
Kafa karıştırmaya devam etmeyeyim ve fonksiyonlara geri döneyim. Geriye doğru örneklere bakarsanız bir örnekte bu olayı kullandım. Şimdi fonksiyonlarla bir çarpma işlemi yapacağım.
Kod
function carp($sayi1,$sayi2) {
return $sayi1*$sayi2;
}
echo carp(10,5);
Örnek hoş güzel oldu ancak ya ikinci sayıyı girmeyi unutursam ne olur? Tabii ki hata verecektir. Warning: Missing argument 2 for carp() in deneme.php online 2 gibi bir hata olması hoş olmaz. Bu durumu düşünerek birkaç alternatif üretin bakalım. Bu soruyu cevaplayanlar önceki konuları az çok öğrenmişlerdir.
Şimdi Global tanımlamaları görelim.
Şimdi şöyle bir örnek yazayım.
Kod
$icerik="PHP Derslerinde Fonksiyonları İşliyoruz";
function icerigi_cagir() {
echo $icerik;
}
icerigi_cagir();
Fonksiyon dışında bir değişken tanımladım ve fonksiyon içinde değişkeni göster dedim. Ancak ekrana hiçbir şey çıkmadı. Çünkü değişkeni fonksiyonda tanımlamadık. Değişkeni fonksiyonda tanımlamadan kullanmanın yolu yok mu? Elbette var. global tanımlama yöntemi. Örneği şu hale getirelim.
Kod
$icerik="PHP Derslerinde Fonksiyonları İşliyoruz";
function icerigi_cagir() {
global $icerik;
echo $icerik;
}
icerigi_cagir();
İşte sonuç karşımızda. Fonksiyon dışında birden fazla değişkeni fonksiyona atayalım şimdi. Bu işlem için her değişken arasına global tanımlamada virgül kullanırız.
Kod
$ders="PHP Derslerinde";
$konumuz="Fonksiyonları İşliyoruz";
function icerigi_cagir() {
global $ders, $konumuz;
echo "$ders $konumuz";
}
icerigi_cagir();
Kod
function degisken_cikar() {
$topla=0;
$topla++;
echo $topla." ";
}
degisken_cikar();
degisken_cikar();
degisken_cikar();
degisken_cikar();
Bu örneği çalıştırırsak karşımıza "1 1 1 1" gelecektir. Fonksiyonu 4 defa çağırdığım için bu hale geldi. Ancak $topla++; bir işe yaramadı. Ben 1 2 3 4 çıkmasını istiyorum. Bakın bu durumda örneği ne hale getiriyorum.
Kod
function degisken_cikar() {
static $topla=0; //static ekledim.
$topla++;
echo $topla." ";
}
degisken_cikar();
degisken_cikar();
degisken_cikar();
degisken_cikar();
İşte benim istediğim buydu. Burada static ile değişkeni fonksiyon dışına çıkarmak için bir ön hazırlık yapıyoruz ve fonksiyon her çağrıldığında değerin bir artmasını sağlıyoruz.
Örnekleri biraz geliştirmeye çalışın.
Örneğin global kullanarak basit bir toplama yapalım.
Kod
$x=2;
$y=20;
$z=8;
function topla() {
global $x,$y,$z;
echo "$x+$y+$z="." ".($x+$y+$z);
}
topla();
Fonksiyonlar şimdilik bu kadar. Bir sonraki dersimize kadar önceki derslere bir geri dönüş yapın. Onları bir inceleyin, örnekleri deneyin ve sonuçları not alın.
Hit: 3554
Yazar: Aloryan