include, require, include_once, require_once arasındaki farklar

include(), require(), include_once(), require_once()

include() fonksiyonu belirtilen dosyadaki kodları, çalıştırılan dosyaya dahil eder ve çalışmaya devam eder. require() fonksiyonu da görev olarak aynıdır fakat çağırılan dosya bulunamazsa hata vererek scripti durdurur. Yani çalışmaya devam etmez. include() fonksiyonu da dosyayı bulamadığı zaman hata verir ancak çalışmaya devam eder. Onun için eğer bir class dosyası çağırıyor isek ve bu dosyanın kesinlikle olmasını istiyorsak require() fonksiyonu kullanmamız gerekir.

Include once ile require once ise dosyanın sadece bir kez dahil edilmesini sağlar.

Şimdi bu anlattıklarımız bir örnek ile açıklayayım:

class dosyası:

<?
class islem
{
function toplama($x,$y)
{
$z = $x+$y;
echo $z;
}
function cikarma($x,$y)
{
$z = $x-$y;
echo $z;
}
function carpma($x,$y)
{
$z = $x*$y;
echo $z;
}
function bolme($x,$y)
{
$z = $x/$y;
echo $z;
}
}
?>

islem dosyası

<?
include (“class_islem.php”);
$islem = new islem();
$islem = $islem->toplama(10,12);
?>

Normal şartlar altında eğer class_islem.php dosyası var ise 22 sonucunu döndürür. Ama class_islem.php dosyası eğer yok ise;

Warning: include(class_islem.php): failed to open stream: No such file or directory in /Applications/MAMP/htdocs/islem.php on line 2

Warning: include(): Failed opening ‘class_islem.php’ for inclusion (include_path=’.:/Applications/MAMP/bin/php/php5.4.4/lib/php’) in /Applications/MAMP/htdocs/islem.php on line 2

Fatal error: Class ‘islem’ not found in /Applications/MAMP/htdocs/islem.php on line 3

gibi bir uyarı alırsınız.

Eğer require(“class_islem.php”); olarak dosyayı çağırırsak ve dosya bulunamazsa;

Warning: require(class_islem.php): failed to open stream: No such file or directory in /Applications/MAMP/htdocs/islem.php on line 2

Fatal error: require(): Failed opening required ‘class_islem.php’ (include_path=’.:/Applications/MAMP/bin/php/php5.4.4/lib/php’) in /Applications/MAMP/htdocs/islem.php on line 2

gibi bir uyarı alırsınız. Bu uyarıdan da anlaşılacağı üzere çalışmaya devam etmedi, yani islem class ını bulmaya çalışmadı. require() kullanmak güvenlik açısından da önemlidir. Görüldüğü üzere require() kullandığımız zaman kodlar çalışmadı ve hangi class ı kullanıdığımız açığa çıkmadı.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir