2 // Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
5 public function __construct(public (function(): void
) $f)[] {}
6 public function f(): void
{ echo "f: method\n"; }
8 public static ?
(function(int): int) $bar = null;
9 <<__DynamicallyCallable
>> public static function pred(int $x): int { return $x - 1; }
10 public static function bar(int $x): int { return 2 * $x; }
14 function main(): void
{
15 $e = new Foo(() ==> { echo "f: attribute\n"; });
17 ($e->f
)(); // f:attribute
19 Foo
::$bar = $x ==> $x +
1; // succ
21 var_dump((Foo
::$bar)(10)); // int(11)
23 var_dump(Foo
::$bar(10)); // int(9)
25 var_dump(Foo
::bar(10)); // int(20)