PHP Bu derste, operatörleri, kontrol yapılarını ve fonksiyon yapılarını işleyeceğiz. Karşılaştırma işlemlerinde, hesaplamalarda, mantıksal işlemlerde ve daha bir çok konuda karşımıza çıkan operatörler PHP'nin önemli yapı taşlarıdır. Kontrol yapıları diyince aklımıza koşul ifadeleri (şartlar) ve döngüler gelmelidir. Bunların yanında bir PHP scripti içerisine başka bir PHP scriptini gömmeyi öğreneceğiz. Fonksiyon yapısını ve fonksiyonlarla ilgili olan komutları, kendi fonksiyonlarımızı nasıl yapacağımızı inceleyerek dersimizi tamamlayacağız. İnternet Programcılığı 1 Önceliği Bütün programlama dilleri gibi PHP için de işlemlerin hangi sırada yapıldığı önem taşır. "5 + 4 * 2" işleminin sonucu, önce 5 ile 4'ün toplanması ve sonucun 2 ile çarpılması halinde başka, 4'ün 2 ile çarpılması ve sonucun 5 ile toplanması halinde başka olacaktır. Bu bakımdan, PHP'nin hangi işlemi önce yaptığı, hangi işlemi sonra yaptığını bilmemiz gerekir. Aşağıdaki tablo, PHP'deki işlemlerin öncelik sırasını göstermektedir (aşağıya doğru öncelik artar). İnternet Programcılığı 2 Öncelik Sırası, = += -= *= /=.= %= &= = ^= && ^ ==!= < <= > >= + -. * / % New İnternet Programcılığı 3 Aritmetik Aritmetik operatörler, ilkokuldan bildiğiniz 4 işlemi (+ mod alma) gerçekleştirmek için kullanılırlar. Aşağıdaki tablo bu operatörlerin kullanımını ve yaptıkları işlemleri göstermektedir. $a + $b Toplama $a - $b Çıkarma $a * $b Çarpma $a / $b Bölme $a % $b Mod alma (kalan) İnternet Programcılığı 4 Atama i Temel atama operatörü "=" 'dir. Aslında "=" sembolünü gördüğünüzde ilk aklınıza gelenin "eşittir" olduğunu tahmin ediyorum, fakat PHP'de bu böyle değildir. "=" operatörü sadece, sağında bulunan ifadeyi solundakine atamak için kullanılır. $a = 5 gibi. İnternet Programcılığı 5 Bir atama ifadesinin değeri, atanan değerdir. Örneğin "$a = 3" ifadesinin değeri 3 olur. Bunu şu basit örnekle deneyebilirsiniz: if ($a=3) echo "if"; else echo "else"; Burada "$a=3" ifadesinin değeri 3 olacağı ve if koşulunda ifadenin değerinin 0 dışında bir değer olması durumunda sonucun true (doğru) olacağı düşünüldüğünde ekrana "if" yazar. Fakat "$a=3" yerine "$a=0" deseydik, ifadenin değeri de 0 olacağından, bu durumda "else" durumu gerçekleşecekti. İnternet Programcılığı 6 Temel atama operatörüne ek olarak, ifade içerisinde değer kullanımına ve onun değerini de ifadenin sonucuna atamaya izin veren birleştirme operatörleri bulunmaktadır. Bunu şu örnekle daha iyi anlamak mümkün olacaktır: $a = 3; $a += 5; // $a'ya 8 atar, sanki şunu yapmışız gibi: $a = $a + 5; echo $a; // ekrana 8 yazar $b = "ULUDAĞ"; $b.= BİLPROG"; // $b'ye "ULUDAĞ BİLPROG" atar, şunun gibi $b = $b. BİLPROG"; echo $b; // ekrana "ULUDAĞ BİLPROG" yazar İnternet Programcılığı 7 Bit Düzeyi (Bitwise) İleri seviye programcıların ihtiyaç duyacağı bu operatörler bit düzeyinde işlemler yapmak için kullanılırlar. Aşağıdaki tablo bitwise operatörleri ve işlevlerini göstermektedir: $a & $b And (Ve) $a $b Or (Veya/Yada) $a ^ $b Xor (Dışlamalı Yada) ~ $a Not (Değil) $a << $b Shift left (Sola kaydırma) $a >> $b Shift right (Sağa kaydırma) İnternet Programcılığı 8 Karşılaştırma i Karşılaştırma operatörleri, adından da anlaşılacağı gibi, iki değeri karşılaştırmamızı sağlarlar. $a == $b Eşit $a!= $b Eşit değil $a <> $b Eşit değil $a < $b Küçük $a > $b Büyük $a <= $b Küçük yada eşit $a >= $b Büyük yada eşit İnternet Programcılığı 9 1
Arttırma/Azaltma i PHP, C stilindeki ön ve son ek şeklinde arttırma/azaltma operatörlerini destekler. Bu operatörleri ve kullanımlarını tabloda inceleyelim: ++$a $a++ --$a $a-- Ön-arttırım Son-arttırım Ön-azaltım Son-azaltım İnternet Programcılığı 10 Mantıksal Mantıksal (logical) operatörler; ve, veya, değil gibi lojik durumları kontrol etmek için kullanılırlar. İsim $a and $b And (Ve) $a or $b Or (Veya) $a xor $b Xor (Dışlamalı veya)! $a Not (Değil) $a && $b And (Ve) $a $b Or (Veya) İnternet Programcılığı 11 String i PHP'de 2 adet string operatörü bulunur. Bunlardan ilki, nokta ('.') işareti ile kullanılan birbirine bağlama operatörü, ikincisi ise ('.=') işaretleri ile kullanılan birbirine bağlayarak atama operatörüdür (atama operatörlerinde olduğu gibi). $a = "ULUDAĞ"; $b = $a. BİLPROG"; // $b'nin içeriği "ULUDAĞ BİLPROG" olur. echo $b; $a = ""; $a.= BİLPROG"; // $a'nın içeriği şimdi "ULUDAĞ BİLPROG" oldu echo $a; İnternet Programcılığı 12 Dizi i PHP'deki tek dizi (array) operatörü + operatörüdür. Bu operatör ile sağda gösterilen dizi soldakinin üzerine eklenir, fakat çakışan anahtarlar üzerine yazılmazlar. <pre> $a = array("a" => "ahmet", "b" => "berna"); $b = array("a" => "aysel", "b" => "burhan", "c" => "canan"); $c = $a + $b; var_dump($c); </pre> Bu örneğin çıktısı şu şekilde gerçekleşir: array(3) ["a"]=> string(5) "ahmet" ["b"]=> string(5) "berna" ["c"]=> string(5) "canan" Her bilgisayar dilindeki en önemli yapıtaşları kontrol yapılarıdır. Bu yapılar; eğer, ise, değilse gibi kelimelerinin bilgisayardaki karşılıklarıdır. "Bir işlem sonucu doğru gelirse" diye başlayan koşul ifadeleri bir sonuç için belli sayıda tekrarlanarak bilgisayar programlarını oluştururlar. Bunların yanında tekrarlayan işlemleri yapmak için kullanılan döngü yapıları da kontrol yapıları olarak karşımıza çıkarlar. Şimdi isterseniz en çok kullanılan mantıksal kıyaslama türü olan if koşul ifadelerinden başlayarak kontrol yapılarını tanımaya çalışalım. İnternet Programcılığı 13 İnternet Programcılığı 14 İnternet Programcılığı 15 If Bu komutla belli bir durumun doğruluğu denetlenir ve istenen durumda farklı bir komut çağrılır. Çağrılan komut bir yada birden çok olabilir. Komut dizilerini birbirinden ayırmak için matematik parantezi kullanılır. PHP, if yapısının C ile benzerliğiyle ön plana çıkar: if (ifade) deyim If parantezindeki koşul (ifade), onun boolean değeri ile değerlendirilir. Eğer ifadenin sonucu TRUE ise, PHP deyimi çalıştırır ve eğer değerlendirme sonucu FALSE ise deyim bölümü yok sayılır (görmezden gelinir). Eğer $a değeri $b'den büyükse aşağıdaki örnek ekrana "a, b'den büyüktür" yazar. if ($a > $b) print "a, b'den büyüktür"; If deyimini, programınızda yeterli esnekliği sağlayabilmeniz amacıyla başka if deyimlerinin içerisinde, hatta defalarca iç içe kullanılabilirsiniz. Çoğu zaman şartlı olarak birden fazla deyim çalıştırmak isteyebilirsiniz. Bu durumda deyimleri tek bir grup olarak tanımlayabilirsiniz. Örneğin aşağıdaki kod, eğer $a değeri $b'den büyükse ekrana "a, b'den büyüktür" yazar ve ardından b'yi a değerine eşitler. $a=8;$b=3; if ($a > $b) print "a, b'den büyüktür"; $b = $a; echo "son durum: a=$a,b=$b"; İnternet Programcılığı 16 İnternet Programcılığı 17 İnternet Programcılığı 18 2
Else Else kontrolü sadece "if" ile birlikte kullanılır. Eğer "if" sonucu mantıksal denetlemeden yanlış (FALSE) sonucu dönerse else komutuyla yanlış duruma göre istenen komut çağrılır. Yani "if" koşulunu "eğer" olarak Türkçeleştirirsek, "else" koşuluna da "değilse" diyebiliriz. : $a=23;$b=25; if ($a > $b) print "a, b'den büyük"; /* print komutu echo ile aynı görevi görür */ else print "a, b'den büyük DEĞİL"; Elseif Elseif, adından da anlaşılacağı gibi, if ile else komutlarının bir bileşimidir. Else'ye benzer olarak, bağlı olduğu "if" koşulunun doğru olmaması durumunda devreye girer. Fakat "else" den farklı olarak, yalnızca "elseif" koşullu ifadesinin değerinin TRUE olması durumunda belirtilen deyimleri işletir. "elseif" ifadesine, "Değilse ve şöyleyse" şeklinde Türkçe anlam yüklenebilir. Aynı "if" deyimi için duruma göre istenilen kadar elseif koşulu tanımlanabilir. PHP'de elseif ifadesi "else if" şeklinde ayrı ayrı yazılabileceği gibi, "elseif" şeklinde bitişik de yazılabilir, her ikisi de tanımlıdır. İnternet Programcılığı 19 İnternet Programcılığı 20 İnternet Programcılığı 21 Örneğimiz konuyu daha iyi ifade edecektir: $a=14; $b=14; if ($a > $b) print "a, b'den büyük"; elseif ($a == $b) print "a, b'ye eşit"; else print "a, b'den küçük"; İnternet Programcılığı 22 While While döngüsü, PHP'deki en basit döngü tipidir. Basit yapısı şu şekildedir: while (ifade) deyim1; deyim2; While döngüsü içerisine yazılan koşul ifadesi gerçekleştiği, yani TRUE olduğu sürece döner. İnternet Programcılığı 23 Şimdi dilerseniz while'ın kullanımı ile ilgili basit bir örnek yapalım: $i = 1; while ($i <= 10) print $i++; İnternet Programcılığı 24 Do..while "do..while" döngüleri "while" döngülerine çok benzer. Aradaki tek fark şart ifadesinin doğruluğunun kontrol edildiği yerdir. "while" da bu kontrol işlemi döngünün baş tarafında yapılmaktadır. Basit yapısı şu şekildedirpılırken, "do..while" da adımların sonunda : do deyim1; deyim2; while (ifade); İnternet Programcılığı 25 While döngüsünü anlatırken işlediğimiz örneğin aynısını do..while ile yaparsak: $i = 0; do print $i++; while ($i<=10); İnternet Programcılığı 26 For "for" döngüleri PHP'deki en kompleks döngülerdir. Sözdizimi şu şekildedir: for (başlangıç, bitiş, adım) Şart doğru olduğu sürece yapılacak işlemler başlangıç : döngüde kullanılacak değişkenin başlama değeri belirlenir. (örn : $i="0") bitiş : döngünün uygulanması için gereken koşulu belirtilir. (örn : $i < 10) adım : döngü değişkeninin artış değeri belirtilir. (örn : $i++ veya $i=$i+2) İnternet Programcılığı 27 3
"for" döngüsü de aynen "while" gibi "bitiş" ile belirtilen şart doğru (TRUE) olduğu sürece tanımlanan işlemleri gerçekleştirir. Fakat bu işi "başlangıç" kısmında $i değişkenine atadığımız değerden başlayarak "adım" kısmında belirlediğimiz değer kadar arttırarak, "bitiş" ifadesi doğru olduğu sürece gerçekleştirir. Birkaç farklı örnekle konuyu anlamaya çalışalım: for ($i = 1; $i <= 10; $i++) print $i; Sonsuz döngü oluşturma: for ($i = 1;;$i++) if ($i > 10) break; print $i; Foreach Foreach, diziler üzerinde iteratif (yineleme, tekrarlama) işlemler yapmak için bizlere kolay bir yol sunar. Foreach sadece dizilerde (array) kullanılır ve bunu farklı veri tipine sahip herhangi bir değişkende ya da uygun atanmamış değişkenlerde kullanmayı denediğinizde hata verir. İki sözdizim biçimi vardır. Asıl kullanım biçimi birincisi olmasına rağmen, ikinci kullanımı daha kullanışlıdır: foreach(dizi_degiskeni as $deger) deyim foreach(dizi_degiskeni as $anahtar => $deger) deyim Foreach ile dizi elemanı sayısını belirtmeden o sayı kadar otomatik dönen bir döngüyü kolaylıkla oluşturmuş oluruz. İnternet Programcılığı 28 İnternet Programcılığı 29 İnternet Programcılığı 30 Birkaç farklı örnekle konuyu anlamaya çalışalım: $dizi = array (1, 3, 5, 7); foreach ($dizi as $deger) print "\$dizi'nin şu anki elemanı: $deger<br>"; foreach(array(1,3, 5, 7) as $deger) print "$deger<br>"; $dizi = array ( "bir" => 1, uc" => 3, "bes" => 5, "yedi" => 7 ); foreach ($dizi as $anahtar => $deger) print "\$dizi[$anahtar] = > $deger<br>"; Break Break komutu, içerisinde bulunduğu for, foreach while, do..while ve switch gibi döngü yapılarının çalışmasını sona erdirir. Örneğin bir for döngüsü içerisinde yapılan bir "if" kontrolü ile birlikte kullanılacak "break" komutu, içerisinde bulunduğu döngüyü sona erdirir ve script alttaki komutları icra etmeye devam eder. Break komutu, opsiyonel olarak sayısal bir parametre alabilir. Bu parametre iç içe bulunan kaç döngüden çıkılacağını belirtmeye yarar. Örneğin içiçe iki döngü var ve en içte break 2 komutu işletilirse, iki döngüden birden çıkılır. İnternet Programcılığı 31 İnternet Programcılığı 32 İnternet Programcılığı 33 : $dizi = array ('bir', 'iki', 'üç', 'dur', 'dört', 'beş'); while (list (, $deger) = each ($dizi)) if ($deger == 'dur') break; /* buraya 'break 1;' de yazabilirdik */ echo "$deger<br>\n"; Continue Continue, döngü yapılarının içerisinde kalan komutları atlayarak döngünün bir sonraki adımına geçilmesini sağlar. Bu komut da break gibi sayısal bir parametre alarak hangi seviyedeki döngü içerisinde adım atlama işleminin yapılacağını düzenleyebilir ancak bu şekilde kullanıma rastlamak pek mümkün değildir. : for ($i=1;$i<10;$i++) if ($i >= 4 && $i <= 6) continue; echo $i; İnternet Programcılığı 34 İnternet Programcılığı 35 İnternet Programcılığı 36 4
Return Return ifadesi bir fonksiyonun içinde çağırılırsa o an fonksiyonun çalışması durdurulur ve return ifadesinin degeri fonksiyon değeri olarak geri döndürülür. Örneğin aşağıdaki script çalıştırıldığında ekrana "5" yazar: function topla() return 2+3; echo topla(); Switch Switch ifadesi aynı değişken üzerinde seriler halinde kullanılmış "if" ifadesine benzer. Birçok durumda bir değişkendeki farklı değerlere göre program akışını yönlendirmek istersiniz bu durumda defalarca "if" ifadesi kullanmaktansa "switch" ifadesi kullanmak en doğru tercih olacaktır. if ($a == 0) print "a değişkeninin değeri 0 dır"; elseif ($a == 1) print "a değişkeninin değeri 1 dir"; elseif ($a == 2) print "a değişkeninin değeri 2 dir"; İnternet Programcılığı 37 İnternet Programcılığı 38 İnternet Programcılığı 39 if" ve "elseif" lerle yapılan kontrolü switch ifadesiyle şekilde gerçekleştirebiliriz: switch ($a) case 0: print "a değişkeninin değeri 0 dır"; break; case 1: print "a değişkeninin değeri 1 dir"; break; case 2: print "a değişkeninin değeri 2 dir"; break; Switch ifadesinin adım adım çalışmasını iyi anlamak, bir takım mantıksal hatalar yapmamamız açısından çok önemlidir. Switch ifadesi satır satır çalışır. Başlangıçta herhangi bir kod çalışmaz. Yalnızca belirtilen değişkenin içeriğinin eşit olduğu case ifadesindeki değer bulunur ve bu ifadeden sonraki satırlar switch bloğunun sonuna kadar çalıştırılır. Burada çok ufak gibi görünen ama önemli bir nokta vardır. Break ifadesi kullanılmaz ise PHP bir sonraki case ifadelerini de çalıştırmaya devam eder. Switch ifadesinin kullanımında özel bir durum olan default ifadesi belirtilen case ifadelerinin değerlerinden hiç birinin eşitlik şartı aranan değişkenin değerine eşit olmaması durumunda aktif olur. Buradan da şu sonucu çıkartabiliriz ki default ifadesi switch bloğunun en sonunda bulunmalıdır. İnternet Programcılığı 40 İnternet Programcılığı 41 İnternet Programcılığı 42 Include() Hazırlayacağımız PHP belgelerinde karışıklığı engellemek, oluşturacağımız karmaşık yapıdaki dağınık kodları daha anlaşılır ve çözümlenmesi kolay hale getirebilmek için include ifadesini kullanırız. Bu ifade ile hazırladığımız bir PHP dosyasını başka bir çok dosyada tekrar aynı dosya içeriğini yazmadan kullanabilmemiz mümkündür. Hazırladığımız bir PHP dosyasını herhangi başka bir PHP dosyasından; Include("dosya.adı") şeklinde çağırmamız mümkündür. "dosya adı" kısmında çağırdığımız dosya PHP tarafından çağrılan dosyanın içerisine eklenecektir. "Include" ifadesi ile eklenen dosya sanki çağıran dosyanın içerisine çağrıldığı yerden itibaren satır satır eklenerek çalıştırılır. Örneğin içerisinde; $ders = "İnternet Programcılığı"; şeklinde değişken tanımı yapılan "1.php" adında bir dosyamız olsun. "1.php" dosyasını, aynı klasörde bulunan "2.php" isimli bir PHP dosyasından çağıralım; "2.php" isimli dosyamızdan "1.php" dosyasını çağırmak aşağıdaki şekilde mümkündür. include("1.php"); echo $ders; Biz "2.php" isimli dosyamızda "ders" adında bir değişken tanımlamadığımız halde "2.php" dosyası "$ders" adlı değişkenin değerini görüntüler. İnternet Programcılığı 43 İnternet Programcılığı 44 İnternet Programcılığı 45 5
Require() Kullanım şekli "include()" ifadesi ile aynıdır, fakat çalışma şekli olarak include() ifadesinden küçük ama önemli bir farkla ayrılır. include() ifadesi ile çağırılan dosya bulunamadığı taktirde bir uyarı (Warning) döner ve sayfa kaldığı yerden yüklenmeye devam eder, fakat require() ifadesi ile çağrılan dosya bulunamıyorsa PHP hata (Fatal_Error) verir ve ana scriptin yorumlanması işlemini durdurur. Require ile sayfaya eklenen kodlar olmazsa olmaz kodlarımız ise include yerine require'ı tercih etmeliyiz. require_once() ve include_once() Kullanım şekli olarak include() ve require() ile aynıdırlar, ancak çalışma şekli olarak özel bir durum söz konusudur. require_once() ve include_once() ile çağırılan dosyalar daha önce çağırılmışlarsa, daha önce çağrıldıkları için tekrar yüklenmeyeceklerdir. Bu komutlar, bir dosyanın yanlışlıkla birden fazla defa scripte eklenmesini engellemek için kullanılırlar. Kullanıcı Tanımlı, her programlama dilinde olduğu gibi PHP'nin de yapıtaşlarıdır. PHP'de fonksiyon yapısı C dilindekine çok benzerdir. Bir fonksiyon aşağıdaki biçimde tanımlanabilir: function ornek ($arg_1, $arg_2,..., $arg_n) /* fonksiyona gönderilen argümanlar*/ echo " fonksiyon.\n"; return $donusdegeri; İnternet Programcılığı 46 İnternet Programcılığı 47 İnternet Programcılığı 48 Geçerli herhangi bir PHP kodu, bir fonksiyonun içerisinde kullanılabilir. PHP, bir koşul ifadesi içerisinde (örneğin if koşulu) fonksiyon tanımına izin verir. Bu durumda şart sağlanırsa fonksiyon tanımlanmış olur. PHP aynı zamanda fonksiyon içerisinde fonksiyon tanımlamaya da olanak tanır. Bu durumda içteki fonksiyon ancak asıl fonksiyon çağırıldıktan sonra kullanılabilir. Fonksiyon Argümanları (Parametreleri) Bilgi, virgüllerle ayrılmış değişken veya sabitlerden oluşan argüman (parametre) listesi aracılığıyla fonksiyonlara aktarılabilir. Fonksiyona aktarılan değişkenler integer, float, string,.. tipinde ölçülebilir değerler olabildiği gibi nesne (object), dizi (array) gibi değişken tipleri de olabilir. Varsayılan (Default) Argüman Değerleri PHP fonksiyonları parametre (argüman) olarak "varsayılan" değerleri kabul ederler. Fonksiyona parametre olarak herhangi bir değer gitmediğinde varsayılan değer gelmiş gibi işlem görür: function icecek ($secim = "çay") return "Bir fincan $secim.<br>"; echo icecek (); echo icecek ("kahve"); İnternet Programcılığı 49 İnternet Programcılığı 50 İnternet Programcılığı 51 Yukarıdaki küçük kodun çıktısı şu şekilde gerçekleşir: Bir fincan çay. Bir fincan kahve. Varsayılan değer sabit bir ifade olmalıdır, bir değişken yada sınıf (class) üyesi olamaz. PHP'de varsayılan argümanlar mutlaka kendisini ifade eden argümana denk gelecek şekilde kullanılmalıdır: function buket ($renk = "kırmızı", $cicek) return "Bir buket $renk $cicek.\n"; echo buket ("gül"); // doğru çalışmaz! Dönüş (Return) Değerleri a argüman (parametre) olarak değer gönderilebildiği gibi, dönüşte de fonksiyondan değer alınabilir. da yapılan işlemlerin ardından, isteğe bağlı olarak "return" ifadesi ile geriye değer ya da değerler döndürülebilir. Bu değerler, ihtiyaca göre herhangi bir veri tipi olabilirler. "return" ifadesi, fonksiyonun çalışmasını derhal durdurarak çağırıldığı satıra geri dönülmesine yarar. "return" ifadesinin ardından yazılan değer ya da değişkenler, fonksiyonun geri dönüş değerleri olurlar. İnternet Programcılığı 52 İnternet Programcılığı 53 İnternet Programcılığı 54 6
: function test () return "Bu bir test."; echo test(); // ekrana "Bu bir test." yazar İnternet Programcılığı 55 Fonksiyona şu şekilde argüman gönderebilir ve geri dönüş değerini elde edebiliriz: function kareal($sayi) return $sayi * $sayi; echo kareal(7); // ekrana "49" yazar İnternet Programcılığı 56 dan virgül veya başka bir ayraç ile çeşitli değerler döndürülemez, fakat benzer sonuçlar dizi ile liste şeklinde geri döndürülebilir: function sehir() return array (54, "Sakarya", 264); list ($trf_kod, $ad, $tel_kod) = sehir(); echo "$ad'nın il trafik kodu $trf_kod'tür."; Bu kodun çıktısı şu şekilde olur: Sakarya'nın il trafik kodu 54'tür. İnternet Programcılığı 57 Değişken PHP, değişken fonksiyon kavramını destekler. Bunun anlamı, eğer bir değişken adına parantezler eklenmişse, değişkenin değerinin PHP tarafından fonksiyon adı olarak algılanması ve çalıştırılabilmesidir. İnternet Programcılığı 58 function basit() echo "Bu basit bir fonksiyondur<br>\n"; function gonder($arg = '') echo "Bu fonksiyona -$arg- değeri geldi<br>\n"; function yaz($cumle) echo $cumle; $fonk = 'basit'; $fonk(); // Bu komut basit() fonksiyonunu çağırır $fonk = 'gonder'; $fonk('1.750.000 TL'); // Bu komut gonder() fonksiyonunu çağırır $fonk = 'yaz'; $fonk('ve mutlu son...'); // Bu komut yaz() fonksiyonunu çağırır İnternet Programcılığı 59 7