Fonksiyonlar
Php'de fonksiyon mantığına bir bakış
Geriye Değer Döndürmeyen Fonksiyon (Void)
Fonksiyonu çağırdığımızda, fonksiyon kendisini çağıran koda hiç bir değer geri döndürmüyor.
<?php
function Islem($Dizi, $Isagret){ //Geriye Değer Döndürmeyen Fonksiyon (Void)
$Carpim=1;
foreach($Dizi as $Eleman){
switch($Isagret){
case '+':$Toplam+=$Eleman; break;
case '*':$Carpim*=$Eleman; break;
}
}
echo number_format($Toplam.$Carpim);
}
Islem(array(5,7,8,9,10), '*');
?>
function Islem($Dizi, $Isagret){ //Geriye Değer Döndürmeyen Fonksiyon (Void)
$Carpim=1;
foreach($Dizi as $Eleman){
switch($Isagret){
case '+':$Toplam+=$Eleman; break;
case '*':$Carpim*=$Eleman; break;
}
}
echo number_format($Toplam.$Carpim);
}
Islem(array(5,7,8,9,10), '*');
?>
Geriye Değer Döndürmeyen Fonksiyon (Void) ve Kendini Devamlı Çağıran Fonksiyon
<?php
function Faktoriyel($Sayi, $Sonuc=NULL){
$Sonuc*=$Sayi;
$Sayi--;
if($Sayi>0){
Faktoriyel($Sayi, $Sonuc);
}
else {
echo number_format($Sonuc);
}
}
Faktoriyel(4, 1);
?>
function Faktoriyel($Sayi, $Sonuc=NULL){
$Sonuc*=$Sayi;
$Sayi--;
if($Sayi>0){
Faktoriyel($Sayi, $Sonuc);
}
else {
echo number_format($Sonuc);
}
}
Faktoriyel(4, 1);
?>
Geriye Değer Döndüren Fonksiyon
<?php
function IlkUc(){
return array (0, 1, 2);
}
list ($Sifir, $Bir, $Iki) = IlkUc();
echo "$Sifir $Bir $Iki"; // 0 1 2
?>
function IlkUc(){
return array (0, 1, 2);
}
list ($Sifir, $Bir, $Iki) = IlkUc();
echo "$Sifir $Bir $Iki"; // 0 1 2
?>
<?php
function SayiUret($Min, $Max) {
$UretilenSayi = rand($Min, $Max);
return $UretilenSayi; //Fonksiyonun çağrıldığı yere geri gönder
}
$Sayi1 = SayiUret(5, 10);
$Sayi2 = SayiUret(50, 100);
$Sayi3 = SayiUret(100, 200);
echo "$Sayi1 $Sayi2 $Sayi3";
//echo SayiUret(5, 10) . ' '. SayiUret(50, 100) . ' ' . SayiUret(100, 200);
?>
function SayiUret($Min, $Max) {
$UretilenSayi = rand($Min, $Max);
return $UretilenSayi; //Fonksiyonun çağrıldığı yere geri gönder
}
$Sayi1 = SayiUret(5, 10);
$Sayi2 = SayiUret(50, 100);
$Sayi3 = SayiUret(100, 200);
echo "$Sayi1 $Sayi2 $Sayi3";
//echo SayiUret(5, 10) . ' '. SayiUret(50, 100) . ' ' . SayiUret(100, 200);
?>
Başlangıç Değerli Fonksiyon
<?php
function BaslangicDegerliFonksiyon($bir, $iki, $uc=7){
echo "$bir $iki $uc";
}
BaslangicDegerliFonksiyon(4, 5); //4 5 7
BaslangicDegerliFonksiyon(4, 5, 9); //4 5 9
?>
function BaslangicDegerliFonksiyon($bir, $iki, $uc=7){
echo "$bir $iki $uc";
}
BaslangicDegerliFonksiyon(4, 5); //4 5 7
BaslangicDegerliFonksiyon(4, 5, 9); //4 5 9
?>
Başlanğıç Değerli Fonksiyonlar
<?php
//Deger Bekleyen Fonksiyonu Değer Yollamadan Çalıştırmak
function SayiUretim($Min = 10, $Max = 100) {
$UretilenSayi = rand($Min, $Max);
return $UretilenSayi; //Fonksiyonun çağrıldığı yere geri gönder
}
$Sayi1 = SayiUretim(5, 10);
$Sayi2 = SayiUretim();
echo "$Sayi1 $Sayi2";
?>
//Deger Bekleyen Fonksiyonu Değer Yollamadan Çalıştırmak
function SayiUretim($Min = 10, $Max = 100) {
$UretilenSayi = rand($Min, $Max);
return $UretilenSayi; //Fonksiyonun çağrıldığı yere geri gönder
}
$Sayi1 = SayiUretim(5, 10);
$Sayi2 = SayiUretim();
echo "$Sayi1 $Sayi2";
?>
Başlanğıç Değerli Geriye Değer Döndüren Fonksiyon
<?php
function KahveYap($KahveCesidi = array("türk kahvesini"), $NeIleYapalim = 'elle'){
return "Bir fincan ".join(" ve ", $KahveCesidi)." $NeIleYapalim yap lütfen.n";
}
echo KahveYap(); //Bir fincan türk kahvesini elle yap lütfen.
echo KahveYap(array("çay", "oraleti"), "su ısıtıcısıyla"); //Bir fincan çay ve oraleti su ısıtıcısıyla yap lütfen.
?>
function KahveYap($KahveCesidi = array("türk kahvesini"), $NeIleYapalim = 'elle'){
return "Bir fincan ".join(" ve ", $KahveCesidi)." $NeIleYapalim yap lütfen.n";
}
echo KahveYap(); //Bir fincan türk kahvesini elle yap lütfen.
echo KahveYap(array("çay", "oraleti"), "su ısıtıcısıyla"); //Bir fincan çay ve oraleti su ısıtıcısıyla yap lütfen.
?>
Fonksiyonun Değişkenlere Referans ile Erişimi (Pointers)
<?php
function PointersalFonksiyon(&$OzelDegisken, $NormalDegisken){
$OzelDegisken+=3;
$NormalDegisken+=4;
}
$Degisken1=5;
$Degisken2=7;
PointersalFonksiyon($Degisken1, $Degisken2);
echo "$Degisken1 $Degisken2"; // 8 7
?>
function PointersalFonksiyon(&$OzelDegisken, $NormalDegisken){
$OzelDegisken+=3;
$NormalDegisken+=4;
}
$Degisken1=5;
$Degisken2=7;
PointersalFonksiyon($Degisken1, $Degisken2);
echo "$Degisken1 $Degisken2"; // 8 7
?>
Fonksiyon dışındada geçerli değişken tanımlamak
<?php
function Sayici(){
$GLOBALS['Dizi']=array('ahmet', 'mehmet', 'ali', 'soner');
$Veriler=array(5, 34, 54, 365);
}
Sayici(); //Ekrana hiç bir şey yazmaz.
echo $Dizi[3]; //Ekrana soner yazar.
echo $Veriler[0]; // Ekrana hiç bir şey yazmaz. Çünkü fonksiyonda bu değişken global tanımlanmadı.
?>
function Sayici(){
$GLOBALS['Dizi']=array('ahmet', 'mehmet', 'ali', 'soner');
$Veriler=array(5, 34, 54, 365);
}
Sayici(); //Ekrana hiç bir şey yazmaz.
echo $Dizi[3]; //Ekrana soner yazar.
echo $Veriler[0]; // Ekrana hiç bir şey yazmaz. Çünkü fonksiyonda bu değişken global tanımlanmadı.
?>
Fonksiyon içerisinde değeri saklanan değişken tanımlamak
<?php
function Sayici($Sayi=NULL){
static $Toplam; // Toplam değişkeni static olarak tanımlanmasaydı sonuç 0 olurdu. static olduğu için sonuç 22'dir
$Toplam+=$Sayi;
if(empty($Sayi)){
echo "Sayilar toplami: $Toplam";
}
}
Sayici(5);
Sayici(15);
Sayici(2);
Sayici();
?>
function Sayici($Sayi=NULL){
static $Toplam; // Toplam değişkeni static olarak tanımlanmasaydı sonuç 0 olurdu. static olduğu için sonuç 22'dir
$Toplam+=$Sayi;
if(empty($Sayi)){
echo "Sayilar toplami: $Toplam";
}
}
Sayici(5);
Sayici(15);
Sayici(2);
Sayici();
?>
Örnekler:
<?php
function UretimBandiModel1() { //Parametre Almadan Geriye Değer Döndürmeyen Fonksiyon
echo '<div style="width:150px; height:150px; background-color:red; float:left; margin: 5px;"></div>';
}
function UretimBandiModel2($En, $Boy) { //Parametreli Fonksiyon
echo '<div style="width:' . $En . 'px; height:' . $Boy . 'px; background-color:green; float:left; margin: 5px;"></div>';
}
function UretimBandiModel3($En=100, $Boy=100) { //Ön Parametreli Fonksiyon
echo '<div style="width:' . $En . 'px; height:' . $Boy . 'px; background-color:magenta; float:left; margin: 5px;"></div>';
}
function UretimBandiModel4($En=100, $Boy=100) { //Ön Parametreli ve Değer Döndüren Fonksiyon
return '<div style="width:' . $En . 'px; height:' . $Boy . 'px; background-color:yellow; float:left; margin: 5px;"></div>';
}
UretimBandiModel1();
UretimBandiModel1();
UretimBandiModel1();
//UretimBandiModel2(); //Hata Döndürür
UretimBandiModel2(100, 50);
UretimBandiModel2(70, 150);
UretimBandiModel2(30, 10);
UretimBandiModel2(50, 40);
UretimBandiModel3();
UretimBandiModel3(50, 40);
echo UretimBandiModel4();
echo UretimBandiModel4();
echo UretimBandiModel4();
echo UretimBandiModel4();
?>
function UretimBandiModel1() { //Parametre Almadan Geriye Değer Döndürmeyen Fonksiyon
echo '<div style="width:150px; height:150px; background-color:red; float:left; margin: 5px;"></div>';
}
function UretimBandiModel2($En, $Boy) { //Parametreli Fonksiyon
echo '<div style="width:' . $En . 'px; height:' . $Boy . 'px; background-color:green; float:left; margin: 5px;"></div>';
}
function UretimBandiModel3($En=100, $Boy=100) { //Ön Parametreli Fonksiyon
echo '<div style="width:' . $En . 'px; height:' . $Boy . 'px; background-color:magenta; float:left; margin: 5px;"></div>';
}
function UretimBandiModel4($En=100, $Boy=100) { //Ön Parametreli ve Değer Döndüren Fonksiyon
return '<div style="width:' . $En . 'px; height:' . $Boy . 'px; background-color:yellow; float:left; margin: 5px;"></div>';
}
UretimBandiModel1();
UretimBandiModel1();
UretimBandiModel1();
//UretimBandiModel2(); //Hata Döndürür
UretimBandiModel2(100, 50);
UretimBandiModel2(70, 150);
UretimBandiModel2(30, 10);
UretimBandiModel2(50, 40);
UretimBandiModel3();
UretimBandiModel3(50, 40);
echo UretimBandiModel4();
echo UretimBandiModel4();
echo UretimBandiModel4();
echo UretimBandiModel4();
?>
Yorumunuzu Ekleyin