PHP dilinde “$this” ve “self” keywordlerinin kullanım farkları var. Bir sınıf içerisinde global yapıdaki public ya da private değişkenler bir metod içerisinde $this ile kullanılıyor. Sabit ve statiklerde :: işareti kullanırız. Eğer statik bir değişkeni ya da sabit bir değeri kod içerisinde kullanacaksak: “self::” başa getirilip değişken veya sabit kullanılır.
Aşağıdaki örnek son derece net ve anlaşılır. Örneği incelerseniz yukarıdaki yaptığım açıklamadan daha iyi anlayacaksınız :)
class sinifornegi {
const sabit = 'deneme' ; // sabitlere dolar işareti koyulmuyor.
static $statik = 'Static' ;
public $pub = 'Public' ;
private $priv = 'Private' ;
protected $prot = 'Protected' ;
public function goster () {
echo ' sabit ornegi : '.self::sabit;
echo ' statik ornegi : '.self::statik;
echo ' public ornegi : '.$this->pub;
echo ' private ornegi : '.$this->priv;
echo ' protected ornegi : '.$this->prot;
}
//Bir de statik metod yazalım.
static function gizle() {
return false;
}
}
$ornek = new sinifornegi( ) ;
$ornek->goster( ) ;
sinifornegi::gizle(); // statik metodlar nesne oluşturulmadan da böyle kullanılabilinir.
$ornek->gizle(); // boyle de kullanılabilinir.
Etiketler: