PHP - Anonim Sınıflar

Carissa

Administrator
Katılım
2 Mar 2015
Konular
59,189
Mesajlar
88,439
Çözüm
109
Online süresi
4mo 16d
Reaksiyon Skoru
14,280
Altın Konu
2,398
TM Yaşı
11 Yıl 3 Ay 6 Gün
Başarım Puanı
1,051
MmoLira
695,092
DevLira
234
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!




7.0 sürümünün yayınlanması, birçok yeni özelliğin tanıtıldığı PHP dilinin evriminde önemli bir kilometre taşıdır. Anonymous sınıfının özelliği de PHP 7.0 sürümünde kullanılabilir hale getirildi.

"Anonim" teriminin de ima ettiği gibi, (programcı tarafından beyan edilmiş) bir adı olmayan bir sınıftır. Genel uygulama, tekrar tekrar kullanılabilmesi için belirli bir tanımlayıcı ile bir sınıf tanımlamaktır. Öte yandan, anonim sınıf yalnızca bir kerelik kullanım içindir.

$obj = new class() {
/* class body */
};

Bu sınıfın bir isme sahip olmaması dışında, özellikler ve yöntemler içerebilmesi anlamında normal bir adlandırılmış sınıfa benzer. İşlevselliği adlandırılmış bir sınıfın nesnesinden farklı değildir.

Özellikle sınıfın belgelenmesi gerekmediğinde ve sınıf yürütme sırasında yalnızca bir kez kullanıldığında, adlandırılmış bir sınıf yerine anonim bir sınıf kullanılabilir. Basit, tek seferlik nesnelerin oluşturulması gerektiğinde anonim sınıflar yararlıdır.

Örnek

Aşağıdaki kodda, anonim bir sınıf örneklendirilmiş ve $obj nesnesinde depolanmıştır. Sınıf, $obj nesnesiyle çağrılan addition() ve division() yöntemlerinin tanımlarını içerir.

PHP:
<?php
   $obj = new class(10) {
      private int $x;
      function __construct($x) {
         $this->x = $x;
      }

      public function addition($x) {
         return $this->x+$x;
      }
      public function division($x) {
         return $this->x/$x;
      }
   };

   echo "Addition: " . $obj->addition(20) . PHP_EOL;
   echo "Division: " . $obj->division(20) . PHP_EOL;
?>

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

Addition: 30
Division: 0.5


Çocuk Sınıfı Olarak Anonim Sınıf

Anonim bir sınıf, normal bir sınıfın yapabileceği her şeyi yapabilir. Başka bir sınıfı genişletebilir, bir arayüzü uygulayabilir veya hatta bir özelliği kullanabilir.

Örnek

Aşağıdaki örnekte, anonim sınıf, halihazırda mevcut olan bir üst sınıfı genişleten bir alt sınıftır.

PHP:
<?php
   class myclass {
      public function hello() {
         echo "Hello World!" . PHP_EOL;
      }
   }
   $obj = new class("Neena") extends myclass {
      private string $nm;
      function __construct($x) {
         $this->nm = $x;
      }
      public function greeting() {
         parent::hello();
         echo "Welcome " . $this->nm . PHP_EOL;
      }
   };
   $obj->greeting();
?>

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

Hello World!
Welcome Neena

Örnek

Anonim sınıfın kullanıcı tanımlı bir adı olmamasına rağmen, PHP ona dahili bir ad atar ve bu ad, aşağıdaki gibi yerleşik get_class() fonksiyonuyla elde edilebilir:

PHP:
<?php
   $obj = new class() {
      function greeting() {
         echo "Hello World" . PHP_EOL;
      }
   };
   $obj->greeting();
   echo "Name of class: " . get_class($obj);
?>

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

Hello World
Name of class: class@anonymousC:\xampp\htdocs\hello.php:2$0

PHP ayrıştırıcısı dahili ismi rastgele atar.
 

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