PHP’ de Sihirli Sabitler

PHP’ de çeşitli extension’ larla birlikte gelen ön tanımlı sabitler vardır. Bu sabitleri bilmek bizim PHP’ yi daha etkin kullanmamızı sağlar.

1.) __LINE__

Kullanıldığı yerdeki satır numarasını getirir.

echo "Satır numarası : ". __LINE__;

//ÇIKTI: Satır numarası : 2

2.) __FILE__

Dosya yolu ve dosya ismini getirir.

echo "Dosya yolu : ". __FILE__;

//ÇIKTI: Dosya yolu : C:\Bitnami\wampstack-7.3.25-0\apache2\htdocs\learn-lara\app\Http\Controllers\FrontController.php

3.) __DIR__

Dosyanın bulunduğu dizini döndürür.

echo "Klasör yolu : ". __FILE__;

//ÇIKTI: Klasör yolu : C:\Bitnami\wampstack-7.3.25-0\apache2\htdocs\learn-lara\app\Http\Controllers

4.) __FUNCTION__

Bir fonksiyonun içinde kullanıldığında içinde bulunduğu fonksiyonun ismini getirir.

public function myFunction()
    {
  		echo "Fonksiyon ismi : ". __FUNCTION__;
	}

//ÇIKTI: Fonksiyon ismi : myFunction

5.) __CLASS__

Bir sınıfın içinde kullanıldığında içinde bulunduğu sınıfın ismini getirir. Trait’ ler içinde de kullanılır.

class FooBar
{
    public function getClassName(){
        return __CLASS__;
    }
}
$obj = new FooBar();
echo $obj->getClassName();

//ÇIKTI: FooBar

6.) __TRAIT__

Bir trait’ in içinde kullanıldığında içinde bulunduğu traitin ismini getirir.

trait FooBarTrait{  
    function myTraitFunction(){  
        echo __TRAIT__;  
        }  
    }  
    class Student{  
        use FooBarTrait;  
        }  
    $a = new Company;  
    $a->myTraitFunction(); 

//ÇIKTI: FooBarTrait

7.) __METHOD__

Kullanıldığı metodun ismini getirir.

class Student
{
    public function myClassMethod(){
        return __METHOD__;
    }
}
$obj = new Student();
echo  $obj->myClassMethod();

//ÇIKTI: myClassMethod

8.) __NAMESPACE__

Geçerli isim alanını getirir.

namespace FooBarNamespace;
  
class Student {
    public function myMethod() {
        return __NAMESPACE__;
    }
}
  
$obj = new Company();
echo  $obj->myMethod(); 
  
//ÇIKTI: FooBarNamespace

9.) SınıfAdı::class

Kullanıldığı sınıfın içinde sınıfın namespace ile birlikte tam adını getirir.

namespace FooBarNamespace;
class Student{ }
  
echo Geeks::class;

//ÇIKTI: FooBarNamespace\Student

Başarılar.