PHP - static anahtarı

Yazan zeynelakcay Tarih 2016-06-13

PHP de static anahtarı ile oluşturulmuş sınıf özellik ve motodlarına o sınıfın bir nesnesini oluşturmadan erişebiliriz. Peki nasıl erişeceğiz ? hemen açıklıyorum etki alanı çönürlük işleçi ile erişebiliriz yani (::) bu işleç ile erişiyoruz. Hemen kodunu yazalım. Koda geçmeden önce hangi durumlarda static kullanma gereksinimi duyarız yazılımda ona değinelim.

static olarak tanımlanan her nesne RAM bellekte sürekli olarak saklanır ve erişilmeside oldukça hızlıdır.  Kısacası sınıf içindeki static bir olarak tanımlanan bir degişken veya fonksiyon  php tarafından her an kullanılabilir hale getiriliyor. hazır tutuluyor. Bu yüzden  herşeye static özelliği vermek doğru değildir. Nesneden nesneye değişmeyen özellikler için kullanmak uygundur. Aksi halde boştan yere ram belleği işgal etmiş oluruz.

class StaticKavrami
{
	static $name = "zeynelakcay.com";
	public $school = "KTU";

	function __construct()
	{
		// 
	}
}
echo StaticKavrami::$name;

Kod blogumuzdan da anlaşılacağı gibi static olarak tanınlanmış bir özelliğe sınıfın nesnesini oluşturup erişmedik.

Peki static olarak tanımlanan bu ozelliğe sınıf içinde nasıl erişecegiz '  $this->  ' şeklindemi NAYIR :) Aynı durum sınıf içinde bulunan method içinde geçerli bunu da hatırlatayım. Çok önemli olarak $this anahtarını static olarak deklare edilmiş bir method içinde kullanmaayız. Peki nasıl erişeceğiz ? self anahtarına merhaba diyelim o zaman, örnekte açıklayarak gösterdim inceleyelim.

class StaticKavrami
{
	static $name = "zeynelakcay.com";
	public $school = "KTU";

	function __construct()
	{
		// 
	}
	function getName()
	{
		echo self::$name;
	}
}
$a  = new StaticKavrami();
echo $a->getName();

 

Taglar: