<?php
class Item
{
private $notifier;
public function __construct(callable $notifier)
{
$this->notifier = $notifier;
}
public function setTtl($time)
{
call_user_func($this->notifier, $time);
}
}
class Pool
{
private $ttls = [];
public function getItem($id)
{
return new Item(function ($ttl) use ($id) {
$this->ttls[$id] = $ttl;
});
}
public function getTtl($id)
{
return $this->ttls[$id];
}
}
$pool = new Pool;
$item = $pool->getItem('foo');
$item->setTtl(60);
echo $pool->getTtl('foo');
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
60