PHP 7 анонимные классы

В PHP 7 появилась новая функция класса, называемая анонимным классом, которая позволит нам создавать объекты без необходимости их именования. Анонимные классы могут быть вложенными. Что вы думаете о потреблении памяти, времени выполнения, проблемах производительности? Есть ли доступные метрики / статистика?

1

Решение

Анонимные классы — это классы без имен, объявленных программистом, в остальном они идентичны обычным классам.

Синтаксис позволяет им быть вложенными, как функции:

function name() {
function sub() {

}
}

Но так же, как приведенный выше код содержит две глобально доступные функции, следующий код по-прежнему содержит два глобально доступных класса:

class C {
function method () {
return new class{};
}
}

Это дает вам своего рода контроль над тем, где находится класс без труда доступны из, в этом смысле они являются вложенными.

Они не являются вложенными в том смысле, что анонимный класс, объявленный внутри другого класса, не может получить доступ ни к каким членам создаваемого класса.

Так что это:

class C {
private $member;

public function method() {
return new class {
public function method() {
return $this->member;
}
};
}
}

Недопустимо, потому что анонимный класс не является действительно вложенным.

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]