Hikayeler

Reklam vermek için turkmmo@gmail.com

PHP – Statik Özellikler

Carissa

Administrator
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye Turkmmo Discord Nitro Booster
Admin
Katılım
2 Mar 2015
Konular
59,185
Mesajlar
88,382
Online süresi
4ay 14g
Reaksiyon Skoru
14,227
Altın Konu
2,398
Başarım Puanı
1,051
TM Yaşı
11 Yıl 1 Ay 21 Gün
MmoLira
694,336
DevLira
234

Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!

2022103109353932080.jpg

PHP'deki "static" anahtar sözcüğü, bir PHP sınıfında statik özellikleri ve statik yöntemleri tanımlamak için kullanılır. Statik anahtar sözcüğünün ayrıca statik değişkenleri ve statik anonim işlevleri tanımlamak için de kullanıldığına dikkat edilmelidir. Bir PHP sınıfındaki statik özellikler hakkında bilgi edinmek için bu bölümü okuyun.

Bir sınıf tanımında, statik bir niteleyici ile bildirilen bir değişken onun statik özelliği haline gelir. Statik anahtar sözcüğü erişim değiştiricisinden önce veya sonra görünebilir.

static private $var1;
public static $var2;

Eğer tip ipuçlarını kullanmak istiyorsanız, tipin static anahtar sözcüğünden önce olmaması gerekir.

static private string $var1;
public static float $var2;

Bir sınıftaki statik özelliğin değeri, nesnesi tarafından (-> operatörüyle) erişilebilir değildir. Bunu yapmak, Accessing static property myclass::$var1 as non static bildirimiyle sonuçlanır. Bunun yerine, statik özelliklere "::" sembolüyle temsil edilen Kapsam Çözümleme Operatörü kullanılarak erişilir.

Örnek

Aşağıdaki örneğe bir göz atın.

PHP:
<?php
   class myclass {
      static string $var1 = "My Class";
      function __construct() {
         echo "New object declared" . PHP_EOL;
      }
   }
   $obj = new myclass;
   echo "accessing static property with scope resolution operator: " . myclass::$var1 . PHP_EOL;
   echo "accessing static property with -> operator: ". $obj->var1 . PHP_EOL;
?>

Aşağıdaki çıktıyı üretecektir:

New object declared
accessing static property with scope resolution operator: My Class
PHP Notice: Accessing static property myclass::$var1 as non static in hello.php on line 14


"Ben" Anahtar Kelimesi

Bir yöntemin içinden statik özelliğe erişmek için, geçerli sınıfa self anahtar sözcüğüyle başvurun. Aşağıdaki örnekte, sınıfın her yeni nesne bildirildiğinde artırılan bir tamsayı statik özelliği vardır.

PHP:
<?php
   class myclass {
  
      /* Member variables */
      static int $var1 = 0;
      function __construct(){
         self::$var1++;
         echo "object number ". self::$var1 . PHP_EOL;
      }
   }
   for ($i=1; $i<=3; $i++) {
      $obj = new myclass;
   }
?>

Aşağıdaki çıktıyı üretecektir:

object number 1
object number 2
object number 3

"Ebeveyn" Anahtar Kelimesi

Bir temel sınıfın statik özelliği, miras alınan sınıfın bir fonksiyonu içinde base by parent anahtar sözcüğüne başvurularak kullanılabilir. "parent::static_property" sözdizimini kullanmanız gerekir.

Örnek

Aşağıdaki örneğe bir göz atın:

PHP:
<?php
   class myclass {
  
      /* Member variables */
      static int $var1 = 0;
      function __construct() {
         self::$var1++;
         echo "object number ". self::$var1 . PHP_EOL;
      }
   }

   class newclass extends myclass{
      function getstatic() {
         echo "Static property in parent class: " . parent::$var1 . PHP_EOL;
      }
   }
   $obj = new newclass;
   $obj->getstatic();
?>

Aşağıdaki çıktıyı üretecektir:

object number 1
Static property in parent class: 1
 

Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 0, Misafir: 1)

Geri
Üst