MySQL Java JavaScript PHP Python HTML-CSS C-sharp

Clase anonime

Clasele anonime sunt clase care nu au un nume. De obicei, aceste clase sunt utile dacă avem nevoie să creăm o dată un obiect al unei astfel de clase și nu vom mai folosi această clasă ulterior. De exemplu:

$person = new class {};

Pentru a defini o variabilă a unui clasă anonimă, la fel ca în cazul unei clase obișnuite, se folosește operatorul new, urmat de cuvântul cheie class și apoi de corpul clasei în acolade.

Clasele anonime, la fel ca și clasele obișnuite, pot defini proprietăți și metode. De exemplu:

$person = new class {
   
   public $name;
   function sayHello(){
       echo "Hello!<br>";
   }
};
$person->sayHello();
$person->name = "Sam";
echo "Name: " . $person->name . "<br>";

Rezultatul va fi:

Hello!
Name: Sam

De asemenea, clasele anonime pot defini constructori:

$person = new class("Bob") {
   
   public $name;
   function __construct($name)
   {
       $this->name = $name;
   }
   function sayHello(){
       echo "Hello!<br>";
   }
};
echo "Hello, " . $person->name . "<br>"; // Hello, Bob

Apelul constructorului se face imediat după cuvântul cheie class și înainte de acolada deschisă: new class("Bob") {.

În mod similar, putem defini proprietăți direct în constructor, reducând astfel definirea clasei:

<?php
$person = new class("Bob", 34) {
   
   function __construct(public $name, public $age)
   {
       $this->name = $name;
   }
   function displayInfo()
   {
       echo "Name: $this->name; Age: $this->age<br>";
   }
};
$person->displayInfo();
?>

Rezultatul va fi:

Name: Bob; Age: 34
← Lecția anterioară Lecția următoare →