PHP'de Sihirli Sabitler (Magic Constants)
PHP'de kullanıldıkları yere göre değişen 8 adet ön tanımlı sabit ya da bir başka tanımla sihirli sabitler vardır.
| İsim | Açıklama |
__LINE__ | Kullanıldığı satırın, satır numarası bilgisini döndürür. |
__FILE__ | Kullanıldığı dosyanın tam dosya yolu ve dosya ismini döndürür. include işlevi ile betiğe eklenen bir dosyanın içinde kullanıldığında betiğin ismini değil eklenen dosyanın ismini içerir. |
__DIR__ | Dosyanın bulunduğu dizin. Dahil edilen bir dosyanın içinde kullanıldığında dahil edilen dosyanın dizini döner. Bu dirname(__FILE__) ile aynı şeydir. |
__FUNCTION__ | Kod blogu içerisinde bulunduğu fonksiyonun fonksiyon adı bilgisini döndürür. |
__CLASS__ | Kod blogu içerisinde bulunduğu sınıfın sınıf adı bilgisini döndödürür. |
__TRAIT__ | Kullanıldığı sınıf dahilinde kalıtsal özelliğin özellik adı bilgisini döndürür. |
__METHOD__ | Kod blogu içerisinde bulunduğu metodun metot adı bilgisini döndürür. |
__NAMESPACE__ | Dosyaya tanımlanmış olan namespace isim bilgisini döndürür. |
Burada dikkat etmeniz gereken önemli bir husus; ön tanımlı sabitlerin başında ve sonunda bir değil, iki alt çizgi (_) bulunuyor. Şimdi bunların kullanımlarına kısaca bakalım.
__LINE__
<?php echo __LINE__; ?>
Bu ön tanımlı sabit, sayfa içerisinde kaçıncı satırda kullanıldıysa o satırın satır numarasını döndürür.
__FILE__
<?php echo __FILE__; ?>
Bu ön tanımlı sabit, kullanıldığı sayfanın tam dosya yolunu C:\xampp\htdocs\index.php tarzında verir.
__DIR__
<?php echo __DIR__; ?>
Bu ön tanımlı sabit, kullanıldığı sayfanın tam dizin yolunu (dosya adı olmadan) C:\xampp\htdocs tarzında verir.
__FUNCTION__
<?php
function sihirliSabit(){
echo "Benim adım " . __FUNCTION__;
}
sihirliSabit();
?>
Bu ön tanımlı sabit, içerisinde kullanıldığı fonksiyonun ismini verir. Örnek olarak yukarıda verdiğim kod şu çıktıyı üretir;
Benim adım sihirliSabit
__CLASS__
<?php
class SihirliSinif {
function __construct(){
echo "Ben " . __CLASS__ . " sınıfıyım.";
}
}
new SihirliSinif();
?>
Bu ön tanımlı sabit kullanıldığı sınıfın adını döndürür. Örneğin yukarıdaki kod aşağıdaki çıktıyı üretir;
Ben SihirliSinif sınıfıyım.
__TRAIT__
<?php
trait SihirliOzellik{
function yazdirBir(){
echo __TRAIT__;
}
}
class SihirliSinif {
use SihirliOzellik;
}
$nesne = new SihirliSinif();
$nesne->yazdirBir();
?>
Bu ön tanımlı sabit, içinde bulunduğu kalıtsal özelliğin isim bilgisini verir. Yukarıdaki örneğin çıktısı şöyledir;
SihirliOzellik
__METHOD__
<?php
class SihirliSinif {
public function hersey_olabilir(){
echo "Ben " . __CLASS__ . " sınıfındaki " . __METHOD__ . " metoduyum.";
}
}
$nesne = new SihirliSinif();
$nesne->hersey_olabilir();
?>
Bu ön tanımlı sabit, içinde bulunduğu metodun isim bilgisini verir. Yukarıdaki örneğin çıktısı şöyledir;
Ben SihirliSinif sınıfındaki SihirliSinif::hersey_olabilir metoduyum.
__NAMESPACE__
<?php
namespace UserModel {
class User {
public function __construct() {
echo "Ben " . __CLASS__ . " sınıfıyım.\n";
}
public function showData() {
echo "Ben " . __METHOD__ . " metoduyum.\n";
}
}
$nesne = new User();
$nesne->showData();
echo __NAMESPACE__;
}
?>
Bu ön tanımlı sabit, içinde bulunduğu ad alanının (namespace) isim bilgisini döndürür. Örnek olarak yukarıdaki kod şöyle bir çıktı üretir;
Ben UserModel\User sınıfıyım. Ben UserModel\User::showData metoduyum. UserModel
Yazar
Muhammet Şafak
Yazılım Mühendisi & Full-Stack Geliştirici. PHP, Laravel ve modern web teknolojileri üzerine yazıyor.
HakkımdaYorumlar 0
Henüz yorum yapılmamış.
İlk yorumu siz yapın!
Yorum Yaz
Yorumunuz moderasyon sonrası yayınlanacaktır.