(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),