Jamm\Memory\Shm\SingleMemory::read PHP Method

read() public method

Read key value from memory
public read ( string | array $key, &$ttl_left ) : mixed
$key string | array
$ttl_left
return mixed
    public function read($key, &$ttl_left = -1)
    {
        if (empty($key)) {
            $this->ReportError('empty keys are not allowed', __LINE__);
            return false;
        }
        $this->readmemory();
        if (empty($this->mem)) {
            return false;
        }
        if (is_array($key)) {
            $keys = array();
            $ttl_left = array();
            foreach ($key as $ki) {
                $ki = (string) $ki;
                if (!isset($this->mem[self::map_keys][$ki])) {
                    continue;
                }
                $ttl_left[$ki] = $this->get_key_ttl($ki, $this->mem);
                if ($ttl_left[$ki] <= 0) {
                    continue;
                }
                $keys[$ki] = $this->mem[self::map_keys][$ki];
                if (is_numeric($keys[$ki])) {
                    if (intval($keys[$ki]) == $keys[$ki]) {
                        $keys[$ki] = intval($keys[$ki]);
                    } else {
                        if (floatval($keys[$ki]) == $keys[$ki]) {
                            $keys[$ki] = floatval($keys[$ki]);
                        }
                    }
                }
            }
            return $keys;
        } else {
            $key = (string) $key;
            $r = $this->mem[self::map_keys][$key];
            $ttl_left = $this->get_key_ttl($key, $this->mem);
            if ($ttl_left <= 0) {
                $r = NULL;
            } else {
                if (is_numeric($r)) {
                    if (intval($r) == $r) {
                        $r = intval($r);
                    } else {
                        if (floatval($r) == $r) {
                            $r = floatval($r);
                        }
                    }
                }
            }
            return $r;
        }
    }