arşiv

yazılar buna göre etiketlendi; ‘require’

PHP’de include() Ve require() Fonksiyonları

Pazartesi, 09 Mar 2009 Soner Gönül View Comments

Merhabalar.. Uzun zaman oldu gerçekten yazmayalı. Özlemişim gerçekten özellikle php konusunda yazmamayı özlemişim. Hemen gideriyorum özlemimi :)

PHP’de include ve require fonksiyonlarıyla bir php dosyasının içine server bu dosyayı yürütmeye başlamadan önce bir içerik ekleyebiliriz. Bu iki fonksiyon arasında sadece ufak bir fark vardır. include() fonksiyonu eğer içerik olarak eklenecek bir veri bulamamışsa hata verir fakat çalıştırdığımız script çalışmaya devam eder. require() fonksiyonu ise fatal error verir ve script’in çalışmasını durdurur.

Örneğin baslik.php dosyanızın var olduğunu sayarsak şu şekilde kullanabiliriz;

  1. <html>
  2. <body>
  3. <?php include(”baslik.php”); ?>
  4. <h1>Soner Gönül’ün Anasayfasına Hoşgeldiniz..</h1>
  5. </body>
  6. </html>

Bir başka örneğe bakacak olursak benim kendi sayfamın anasayfasında menu.php olarak kayıtlı olsun ve aşağıdaki gibi görüntülensin;

  1. <html>
  2. <body>
  3. <a href=”http://www.sonergonul.com/anasayfa.php”>Anasayfa</a> |
  4. <a href=”http://www.sonergonul.com/hakkimda.php”>Hakkımda</a> |
  5. <a href=”http://www.sonergonul.com/iletisim.php”>İletişim</a>
  6. </body>
  7. </html>

Burada anasayfa.php, hakkimda.php ve iletisim.php sayfaları aynı klasör altında olmaları gerekir. Örneğin iletisim.php dosyasına bakarsak şunu görebiliriz;

  1. <?php include(”menu.php”); ?>
  2. <h1>İletişim Sayfama Hoşgeldiniz</h1>

Eğer anasayfa.php dosyasına bakarsanız da aşağıdaki kodu görebilirsiniz;

  1. <html>
  2. <body>
  3. <a href=”anasayfa.php”>Anasayfa</a>
  4. <a href=”hakkimda.php”>Hakkımda</a>
  5. <a href=”iletisim.php”>İletişim</a>
  6. <h1>Anasayfama Hoş Geldiniz..</h1>
  7. </body>
  8. </html>

Eğer kendiniz de denerseniz bu tür uygulamaları daha faydalı olur. Örneğin kullandığım wordpress yazılımında hangi sayfada olsam en üstte menüler görüldüğünden burada da include() fonksiyonunun kullanıldığını anlayabiliyoruz. (header.php)

Require() fonksiyonuna gelirsek en başta da dediğimiz gibi include() fonksiyonundan tek farkı hata oluştuğunda fatal error verip php scriptinin çalışmasını durdurmasıdır. Örneğin aşağıdaki kodu hem include() ile hem de require() ile çalıştırıp farkı görelim;

  1. <html>
  2. <body>
  3. <?php
  4. include(”hata.php”);
  5. echo “Merhaba!”;
  6. ?>
  7. </body>
  8. </html>

Yukarıdaki kod hata vermesine rağmen Merhaba yazısı yazdırılır.

  1. <html>
  2. <body>
  3. <?php
  4. require(”hata.php”);
  5. echo “Merhaba!”;
  6. ?>
  7. </body>
  8. </html>

Yukarıdaki kod ta hata verir fakat require() fonksiyonu script’i kestiği için Merhaba! yazısı yazdırılmadan script sonlanır.

Görüşmek üzere..

Related posts

Categories: Film Tags: , ,

PHP’de Kullanıcı Tanımlı Fonksiyonlar

Cumartesi, 08 Kas 2008 Soner Gönül View Comments

Merhabalar..Fonksiyonlar bilgisayar bliminde belli işi yapan modüller olarak tanımlanır. Bu fonksiyonlar kullanıldığı ana programa ya bir değer döndürürler ya da ana program içinde bir işlev yaparlar.

PHP’de fonksiyon tanımlarken function deyimi kullanılır.

  1. function isim ($degisken1, $degisken2, $degisken3, … , $degisken n)
  2. {
  3. komut;
  4. ………..
  5. return $donendeger;
  6. }

Örnek olarak;

  1. <?php
  2. function kare ($a)
  3. {
  4. return $a * $a ;
  5. }
  6. $b = kare (5);
  7. echo “$b <br>”;
  8. echo kare (4);
  9. ?>

PHP ile bir fonksiyonun birden fazla değer döndürmesi de sağlanabilir. Bunun için return ifadesinden hemen önce compact deyimi kullanılır. Bu deyim ile dönen değerler tek bir değişkene atanır. Daha sonra bu değişken ana program içerisinde extract ile açılıp, dönen değerler tekrar kullanılır. Örneğin;

  1. <?php
  2. function toplam ($n)
  3. {
  4. $tekToplam = 0;
  5. $ciftToplam = 0;
  6. for ( $i = 1; $i <= $n; $i ++)
  7. {
  8. if ( $i % 2 == 0 )
  9. $ciftToplam = $ciftToplam + $i;
  10. else
  11. $tekToplam = $tekToplam + $i;
  12. }
  13. $tumToplam = $tekToplam + $ciftToplam;
  14. return compact (“tekToplam”,”ciftToplam”,”tumToplam”);
  15. }
  16. extract ( toplam(10) );
  17. echo “1+2+3+4+5+6+7+8+9+10 = $tumToplam<br>”;
  18. echo “1+3+5+7+9 = $tekToplam<br>”;
  19. echo “2+4+6+8+ = $ciftToplam”;
  20. ?>
  • Fonksiyonlarda Referansa Göre Çağırma

Şu ana kadar tanımladığımız fonksiyonlar gönderilen değişken değerine karşılık bir sonuç üretip, bize geri döndürüyorlardı. Bu şekilde bir fonksiyonun kendisine gelen değerlere göre sonuç üretmesine “Call By Value” denir. Bir fonksiyona değişkenin taşıdığı değer dışında gösterdiği adreste parametre olarak girilebilir. Buna ise “Call By Reference” denir. Call By Reference kullanıldığında, Call By Value’nin aksine fonksiyon ile çağrılan değişken üzerinde değişiklik yapılabilir. Fonksiyonun herhangi bir değer döndürmesine gerek yoktur. Örneğin;

  1. <?php
  2. function kare (&$sayi)
  3. {
  4. $sonuc = $sayi * $sayi;
  5. $sayi = $sonuc;
  6. }
  7. $x = 4;
  8. kare ($x);
  9. echo ($x);
  10. ?>
  • Varsayılan Parametreli Fonksiyonlar

PHP’de bir fonksiyon içerisinde kullanılan parametrelere varsayılan değer de atanabilir. Bu şekilde yapılan atama ile kullanıcı tanımlı fonksiyon herhangi bir parametre olmadan çağrılabilir. Örneğin;

  1. <?php
  2. funtcion faktoriyel ( $x = 5 )
  3. {
  4. $sonuc = 1;
  5. for ( $i = 1; $i <= $x; $i++ )
  6. $sonuc *= $i;
  7. return $sonuc;
  8. }
  9. echo faktoriyel() . “<br>”;
  10. echo faktoriyel(7) . “<br>”;
  11. ?>
  • Parametre Sayısı Değişen Değişkenler

Temel prensibi fonksiyona gönderilen değişkenlerin kaç tane olduğunun func_num_args() fonksiyonu ile tespit ettikten sonra da her bir değişkenin func_get_args() fonksiyonu ile indisli olarak çağrılmasıdır. İndisleme işlemi sıfırdan başlanarak değişken sayısının bir eksiğine kadar yapılır. Örneğin;

  1. <?php
  2. function carpim ()
  3. {
  4. $carpim = 1;
  5. $degiskensayi = func_num_args();
  6. for ( $i = 0; $i < $degiskensayi; $i++ )
  7. $carpim *= func_get_arg ($i);
  8. return $carpim;
  9. }
  10. echo carpim (1, 2, 3) . “<br>”;
  11. echo carpim (641, 3) . “<br>”;
  12. ?>
  • Kendi Kendini Çağıran Fonksiyonlar

Bunlara Recursice Fonksiyonlar denir. Favorim ise faktöriyel hesaplamasıdır. Örneğin;

  1. <?php
  2. function faktoriyel ($n) {
  3. if ( $n < 2 )
  4. {
  5. return 1;
  6. }
  7. else
  8. {
  9. return ( $n * faktoriyel ($n – 1) );
  10. }
  11. }
  12. echo faktoriyel ( 7 );
  13. ?>

Burda program şu şekilde işler. 7! = 7 * 6!, 6! = 6 * 5!, gibi …

  • Dışarıdan Bir Dosyadan Fonksiyon Çağırmak

PHP’de ise ana program parçasından dışarıda tutulan bir dosyadaki fonksiyon ya da değişken çağrılırken include ve require ifadeleri kullanılır. Bu ifadelerin her ikisi de string paramtre olarak olarak dosya adını kabul eder. Aradaki fark dosya bulunmadığında include fonksiyonun warning error üretmesi, require fonksiyonun ise fatal error hatası üretip kod işleyişini durdurmasıdır. Örneğin;

test.soner.php dosyamız;

  1. <?php
  2. function kup ( $a )
  3. {
  4. return $a * $a * $a;
  5. }
  6. $adi = “Soner”;
  7. $soyadi = “Gonul”;
  8. $dyeri = “Kirklareli”;
  9. ?>

ornek.php dosyamız;

  1. <?php
  2. require ( ‘test.soner.php’ );
  3. echo kup ( 5 );
  4. echo “<br>”;
  5. echo “Adı      = $adi <br>”;
  6. echo “Soyadı      = $soyadi <br>”;
  7. echo “Doğum Yeri      = $dyeri <br>”;
  8. ?>

Yukarıda require yerine include yazsaydık ikisi de aynı işlevi görürlerdi. Aralarındaki tek fark dosya bulunamadığında verilen hata mesajlarıdır.

Görüşmek üzere..

Related posts

Categories: PHP Tags: , , , , ,