MatthiasMullie\Scrapbook\Adapters\Memcached::deleteMulti PHP Метод

deleteMulti() публичный Метод

public deleteMulti ( array $keys )
$keys array
    public function deleteMulti(array $keys)
    {
        if (!method_exists($this->client, 'deleteMulti')) {
            /*
             * HHVM doesn't support deleteMulti, so I'll hack around it by
             * setting all items expired.
             * I could also delete() all items one by one, but that would
             * probably take more network requests (this version always takes 2)
             *
             * @see http://docs.hhvm.com/manual/en/memcached.deletemulti.php
             */
            $values = $this->getMulti($keys);
            $keys = array_map(array($this, 'encodeKey'), array_keys($values));
            $this->client->setMulti(array_fill_keys($keys, ''), time() - 1);
            $return = array();
            foreach ($keys as $key) {
                $key = $this->decodeKey($key);
                $return[$key] = array_key_exists($key, $values);
            }
            return $return;
        }
        $keys = array_map(array($this, 'encodeKey'), $keys);
        $result = (array) $this->client->deleteMulti($keys);
        $keys = array_map(array($this, 'decodeKey'), array_keys($result));
        $result = array_combine($keys, $result);
        /*
         * Contrary to docs (http://php.net/manual/en/memcached.deletemulti.php)
         * deleteMulti returns an array of [key => true] (for successfully
         * deleted values) and [key => error code] (for failures)
         * Pretty good because I want an array of true/false, so I'll just have
         * to replace the error codes by falses.
         */
        foreach ($result as $key => $status) {
            $result[$key] = $status === true;
        }
        return $result;
    }