include

(PHP 4, PHP 5, PHP 7, PHP 8)

include ifadesi belirtilen dosyayı betiğe ekler ve içeriğini değerlendirir.

Betiğe dahil edilecek dosyalar önce belirtilen dizinde aranır, eğer bir dizin belirtilmemişse include_path yönergesinde belirtilen yollarda aranır. Dosya include_path içinde yoksa include son çare olarak çağrıcı betiğin kendi dizinine ve o anki çalışma dizinine bakar, bulamazsa bir E_WARNING çıktılar; require için bu davranış bir E_ERROR olarak kendini gösterir.

Son E_WARNING veya E_ERROR çıktılanmadan önce, dosyaya erişilemiyorsa, include ve require, her ikisi de sırayla ek E_WARNING'leri çıktılar.

Bir dizin belirtilmişse - mutlak (Windows'ta bir sürücü harfi veya \ ile başlıyorsa veya Unix sistemlerinde / ile başlıyorsa) veya geçerli dizine göreli (. veya .. ile başlıyorsa)- include_path yönergesine bakılmaz. Örneğin bir dosya ../ ili başlıyorsa PHP çözümleyicisi dosyayı betiğin bulunduğu dizinin üst dizininde arayacaktır.

PHP'nin dahil edilen dosyaları nasıl ele aldığı include_path yönergesinin açıklamasında ayrıntılı olarak anlatılmıştır.

Bir dosya bir betiğe dahil edildiğinde, bu dosyanın içerdiği kod, dosyanın dahil edildiği satır itibariyle ana betikte geçerli olan değişken uzayını miras alır. Yani, dosyanın dahil edildiği satıra kadar mevcut değişkenlerin hepsi dahil edilen dosyanın içinde kullanılabilir olacaktır. Bunun yanında, dahil edilen dosyada tanımlanmış işlevlerin ve sınıfların tamamı ana betiğin genelinde tanımlanmış sayılır.

Örnek 1 - Basit bir include örneği

vars.php
<?php

$renk = 'yeşil';
$meyve = 'elma';

?>

dnm.php
<?php

echo "Bir $renk $meyve"; // -> Bir

include 'vars.php';

echo "Bir $renk $meyve"; // -> Bir yeşil elma

?>

include deyimi, bir işlevin içinde kullanılırsa dahil edilmek istenen dosyanın içindeki tüm kodlar sanki o işlev içinde tanımlanmış gibi çalıştırılacaktır. Bu durumda dahil edilen dosyadaki kodlar, işlevin, dosyanın dahil edildiği noktadaki değişken uzayını miras alacaktır. Bu kuralın istisnası dosya dahil edilmeden önce çözümleyici tarafından işleme sokulan sihirli sabitlerdir.

Örnek 2 - İşlev içi include kullanımı

<?php

function foo()
{
    global $renk;

    include 'vars.php';

    echo 'Bir $renk $meyve';
}

/* vars.php, foo() işlevinin etki alanındadır
 * dolayısıyla $meyve bu alanın dışında
 * kullanılamamaktadır. $renk ise global olarak
 * tanımlandığından kullanılabilir
 */
foo();                      // Bir yeşil elma
echo 'Bir $renk $meyve';    // Bir yeşil

?>

Bir dosya bir betiğe dahil edildiğinde, çözümleme işlemi PHP kipinden çıkıp hedef dosyanın başlangıcında HTML kipine geçer ve dosyanın sonuna kadar HTML kipinde kalır. Bu sebeple, hedef dosyanın içindeki kodlardan PHP kodları olarak çalıştırılacaklar PHP başlangıç ve bitiş etiketleri arasına alınmalıdır.

"URL include sarmalayıcıları" PHP'de etkinleştirilmiş ise (öntanımlı yapılandırmada etkindirler),