CodeBlanks Logo Icon CodeBlanks

include_once ve require_once

PHP kursu · Başlangıç · Ders 108/116

include_once ve require_once ile bir dosyanın yalnızca bir kez dahil edilmesini öğrenirsin.

include_once ve require_once

include_once ve require_once, aynı dosyanın yalnızca bir kez dahil edilmesini sağlar. PHP dahil edilen dosyaların listesini tutar; ikinci kez çağrıda dosya atlanır.

Bu, fonksiyon veya sınıf tanımlarını içeren dosyalarda önem kazanır. functions.php dosyasını iki yerden include edersen, fonksiyonlar iki kez tanımlandığı için PHP ölümcül hata verir. include_once ile bu risk ortadan kalkar. require_once aynı davranışı ölümcül hata garantisiyle yapar; yani dosya ilk kez bulunamazsa betik durur, ikinci kez çağrıda atlanır.

Fonksiyon çakışması ve _once

Bir dosyayı iki kez include edersen ve o dosyada fonksiyon tanımı varsa, PHP 'Cannot redeclare function' ölümcül hatasını verir. Çünkü aynı fonksiyon iki kez tanımlanamaz.

İşte include_once ve require_once burada devreye girer: PHP dosyanın daha önce dahil edilip edilmediğini izler ve yalnızca ilk çağrıda çalıştırır. Bu sayede fonksiyon veya sınıf tanımlarını içeren dosyaları güvenle birden çok yerden dahil edebilirsin. Çoğu otomatik yükleyici (autoloader) ve composer paketi require_once kullanır; bu yüzden bu deyim OOP ve kütüphane kodlarında sık görülür.

Uygulama counter.php dosyasını iki kez include_once et

$file değişkenine sys_get_temp_dir() . "/counter.php" yolunu ata. file_put_contents($file, "<?php echo 'Bir kez'; ?>") ile dosyayı yaz. Sonra include_once $file; çağrısını üst üste iki kez yaz. Çıktıda 'Bir kez' yalnızca bir kez görünmeli.

Örnek çözümü göster
Önce $file = sys_get_temp_dir() . "/counter.php"; ata. Sonra file_put_contents($file, "<?php echo 'Bir kez'; ?>"); yaz. Son olarak include_once $file; satırını üst üste iki kez ekle.
Örnek çözüm:
<?php
// counter.php dosyasını oluştur ve iki kez include_once et
$file = sys_get_temp_dir() . "/counter.php";
file_put_contents($file, "<?php echo 'Bir kez'; ?>");
include_once $file;
include_once $file;

Kendini test et

  1. Bir kez dahil et

    include_____ 'utils.php';
    Cevabı göster
    include_once 'utils.php';
  2. Bir dosyayı iki kez include_once ile çağırırsan ne olur?

    • Dosya iki kez çalışır, çıktı ikiye katlanır
    • PHP ölümcül hata verir
    • Dosya yalnızca bir kez çalışır
    • Dosya yok sayılır, hiç çalışmaz
    Cevabı göster

    Dosya yalnızca bir kez çalışır — Doğru. include_once aynı dosyayı yalnızca bir kez dahil eder; ikinci çağrı atlanır.

  3. Deyimleri davranışlarla eşle

    include
    Dosya yoksa uyarı verir
    require
    Dosya yoksa betiği durdurur
    include_once
    Bir kez dahil eder, uyarı verir
    require_once
    Bir kez dahil eder, durdurur

Başlangıç bölümündeki tüm dersler