<?php
class t {
private static $configs = ["a" => ["b" => "c"]];
public static function set($name, $value)
{
$keyParts = explode(".", $name);
$config =& self::$configs;
while (!empty($keyParts)) {
$key = array_shift($keyParts);
if (!isset($config[$key])) {
$config[$key] = [];
}
if (empty($keyParts)) {
$config[$key] = $value;
return;
}
$config =& $config[$key];
//unset($config);
//$config = $tconfig;
}
}
private static function getKey($parts, $config = null)
{
if (is_null($config)) {
$config =& self::$configs;
}
return self::findKey($parts, $config, true);
}
private static function findKey($keyParts, &$array, $returnValue = false)
{
$key = array_shift($keyParts);
if (!isset($array[$key])) {
return false;
}
if (empty($keyParts)) {
if ($returnValue) {
return $array[$key];
}
return true;
}
return self::findKey($keyParts, $array[$key], $returnValue);
}
public static function dump()
{
var_dump(self::$configs);
}
}
t::set("a.b", "vittu");
t::dump();
preferences:
39.84 ms | 402 KiB | 5 Q