include, require, include_once ve require_once deyimleri
include() deyimi tanımladığı dosyayı içinde bulunduğu PHP dosyasına ekler. Eklenen dosyanın içinde ye alan PHP kodları include() deyiminin kullanıldığı satırda yazılmış gibi işlem görür.
Dahil edilecek dosyalar, dosya yolu gösteren dizin tanımlanmış ise dosya yoluna göre, tanımlanmamış ise include_path değeri içinde tanınlanmış yollara göre aktif dosyaya dahil edilir. Eğer dosya include_path içinde tanımlanan yollarda bulunamazsa, include() aktif PHP dosyasının yer aldığı dizini kontrol eder. Dosya burada da bulunamazsa, include() deyimi bir hata verir.
Eğer bir yol tanımlaması yapılmışsa, include_path değeri dikkate alınmaz.
require() deyimi ile include() deyimi ile aynı işlemi gerçekleştirir. Tek farkı hata durumunda E_COMPILE_ERROR seviyesinde bir hata vermesidir. seviyesinden ölümcül bir hata vermesi dışında include() deyimi ile aynıdır. include() deyiminin sadece bir uyarı (E_WARNING) vererek çalışmayı sürdürdüğü durumda require() deyimi PHP kodlarının durmasına neden olur.
include_once() deyimi ile include() deyimi ile aynı işlemi gerçekleştirir. Tek farkı, önceden dahil edilmiş olan dosyaların tekrar dahil edilmemesidir. Böylelikle, bir dosyanın iki kez dahil edilmesi önlenmiş olur.
require_once() deyimi ile require() deyimi ile aynı işlemi gerçekleştirir. Tek farkı, önceden dahil edilmiş olan dosyaların tekrar dahil edilmemesidir. Böylelikle, bir dosyanın iki kez dahil edilmesi önlenmiş olur.
Bir PHP dosyası diğer bir PHP dosyası içine dahil edildiğinde, çağıran dosyada dahil etme işleminin yapıldığı satıra kadar tanımlanmış olam tüm değişkenler dahil edilen dosya içinde kullanılabilir. Ayrıca, dahil edilen dosya içinde yapılan fonksiyon ve sınıf tanımlamaları ana dosyanın tamamında geçerlidir.
Örnek
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
// dosya01.php ve deneme.php aynı dizinde olmalıdır!
// dosya01.php
<?php
$deg01 = 7;
$deg02 = 25;
class personel
{
public $adi;
public $soyadi;
public $yasi;
function yaz_bilgi() {
echo $this->adi . " " . $this->soyadi . " " . $this->yasi . '<br/>';
}
}
function fonk1() {
echo "Dahil edilen dosya içindeki fonksiyon karakter dizisi<br/>";
}
echo "$deg03 <br/>";
?>
// deneme.php
<html>
<body>
<?php
$deg03 = 83;
include ("dosya01.php");
$obj_per = new personel;
$obj_per->adi = "Mehmet";
$obj_per->soyadi = "Çalışkan";
$obj_per->yasi = 25;
$obj_per->yaz_bilgi();
fonk1();
echo "$deg01 $deg02 <br/>";
echo "Çağıran dosya karakter dizisi";
?>
</body>
</html>
Yukarıdaki dosyayı çalıştırdığımızda, web taracıyımızda aşağıdaki ifadeler karşımıza çıkar:
1
2
3
4
5
6
7
83
Mehmet Çalışkan 25
Dahil edilen dosya içindeki fonksiyon karakter dizisi
7 25
Çağıran dosya karakter dizisi
Dahil etme işlemi çağıran dosyanın bir fonksiyonu içinde yapılırsa, dahil edilen dosyanın içindeki tüm kodlar o fonksiyon içinde yazılmış gibi işlem görür.
Örnek
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// dosya01.php ve deneme.php aynı dizinde olmalıdır!
// dosya01.php
<?php
$deg01 = 7;
?>
// deneme.php
<html>
<body>
<?php
function fonk1() {
include ("dosya01.php");
echo "$deg01<br/>";
}
fonk1();
echo "$deg01"; // Ekrana herhangi bir değer yazmaz.
?>
</body>
</html>
Yukarıdaki dosyayı çalıştırdığımızda, web taracıyımızda aşağıdaki ifadeler karşımıza çıkar:
1
2
3
7