Анонимные классы

Последнее обновление: 18.03.2021

Анонимные классы - это классы, которые не имеют имени. Обычно такие классы полезны, если нам необходимо один раз создать объект подобного класса. И больше этот класс не будет использоваться. Например:

$person = new class {};

Для определения переменной аонимного класса, как в случае с обычным классом применяется оператор new, после которого идет ключевое слово class и затем - тело класса в фигурных скобках.

Анонимные классы, как и обычные классы могут определять свойства и методы. Например:

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

Также анонимные классы могут определять конструкторы:

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

При этом вызов конструктора идет сразу после ключевого слова class до открывающей фигурной скобки: new class("Bob") {.

Подобным образом можно определять свойства сразу в конструкторе, сократив тем самым определение класса:

<?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();
?>
Name: Bob; Age: 34
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850