Callable-объекты в php
Callable-объекты в PHP — это любые объекты, которые можно вызвать как функцию
Синтаксис callable-объектов первого класса
Синтаксис CallableExpr(...) создаёт объект Closure из callable-объекта. Часть CallableExpr принимает любое выражение, которое можно непосредственно вызвать в грамматике PHP
#Синтаксис callable-объекта первого класса
class Foo
{
public function method() {echo "<br>Вызов method()<br>";}
public static function staticmethod() {echo "<br>Вызов staticmethod()<br>";}
public function __invoke() {echo "<br>Вызов __invoke()<br>";}
}
$obj = new Foo();
$classStr = 'Foo';
$methodStr = 'method';
$staticmethodStr = 'staticmethod';
$f1 = strlen(...);
$f2 = $obj(...); // Вызываемый объект
$f3 = $obj->method(...);
$f4 = $obj->$methodStr(...);
$f5 = Foo::staticmethod(...);
$f6 = $classStr::$staticmethodStr(...);
// Традиционный callable-синтаксис со строками и массивами
$f7 = 'strlen'(...);
$f8 = [$obj, 'method'](...);
$f9 = [Foo::class, 'staticmethod'](...);
$obj(); #Вызов __invoke()
echo $f1("test"); # 4
$f2(); #Вызов __invoke()
$f3(); # Вызов method()
$f4(); # Вызов method()
$f5(); # Вызов staticmethod()
$f6(); # Вызов staticmethod()
echo $f7("testing"); # 7
$f8(); # Вызов method()
$f9(); # Вызов staticmethod()
Источники
Последнее изменение: 07.11.2024 22:33
Связанные темы
Здесь пока нет комментариев
Добавлять комментарии могут только авторизованные пользователи