%PDF- %PDF-
| Direktori : /www/varak.net/losik.varak.net/vendor/dibi/dibi/src/Dibi/ |
| Current File : /www/varak.net/losik.varak.net/vendor/dibi/dibi/src/Dibi/HashMap.php |
<?php
/**
* This file is part of the Dibi, smart database abstraction layer (https://dibiphp.com)
* Copyright (c) 2005 David Grudl (https://davidgrudl.com)
*/
declare(strict_types=1);
namespace Dibi;
/**
* Lazy cached storage.
* @internal
*/
#[\AllowDynamicProperties]
abstract class HashMapBase
{
/** @var callable */
private $callback;
public function __construct(callable $callback)
{
$this->callback = $callback;
}
public function setCallback(callable $callback): void
{
$this->callback = $callback;
}
public function getCallback(): callable
{
return $this->callback;
}
}
/**
* Lazy cached storage.
* @internal
*/
final class HashMap extends HashMapBase
{
public function __set(string $nm, $val)
{
if ($nm === '') {
$nm = "\xFF";
}
$this->$nm = $val;
}
public function __get(string $nm)
{
if ($nm === '') {
$nm = "\xFF";
return isset($this->$nm) && true ? $this->$nm : $this->$nm = $this->getCallback()('');
} else {
return $this->$nm = $this->getCallback()($nm);
}
}
}