<?php
class Promise {
public $value;
public function __construct($value) {
$this->value = $value;
}
public function when(callable $callable) {
$callable($this->value);
}
}
$promise = new Promise(new StdClass);
var_dump($promise);
$promise->when(function(&$when) {
$when = 42;
});
var_dump($promise);
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(Promise)#1 (1) {
["value"]=>
object(stdClass)#2 (0) {
}
}
object(Promise)#1 (1) {
["value"]=>
int(42)
}