<?php
class Foo
{
private $a;
public function __construct(int $a)
{
$this->a = $a;
}
public function __invoke(int $a) : Bar
{
return new Bar($a);
}
}
class Bar {
private $a;
public function __construct(int $a)
{
$this->a = $a;
}
}
$foo = new Foo(1);
$bar = new $foo(2);
var_dump($foo);
var_dump($bar);
var_dump($foo(2));
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
object(Foo)#1 (1) {
["a":"Foo":private]=>
int(1)
}
object(Foo)#2 (1) {
["a":"Foo":private]=>
int(2)
}
object(Bar)#3 (1) {
["a":"Bar":private]=>
int(2)
}
Output for 5.6.38
Parse error: syntax error, unexpected ':', expecting ';' or '{' in /in/brcPH on line 13
Process exited with code 255.