deaggregate
Introduction
Variable and Type Related Extensions
PHP Manual

# Quickhash

Table of Contents

- Introduction
- Installing/Configuring
  - Requirements
  - Installation
  - Runtime Configuration
- Predefined Constants
- Examples
- QuickHashIntSet — The QuickHashIntSet class
  - QuickHashIntSet::add — This method adds a new entry to the set
  - QuickHashIntSet::__construct — Creates a new QuickHashIntSet object
  - QuickHashIntSet::delete — This method deletes an entry from the set
  - QuickHashIntSet::exists — This method checks whether a key is part of the set
  - QuickHashIntSet::getSize — Returns the number of elements in the set
  - QuickHashIntSet::loadFromFile — This factory method creates a set from a file
  - QuickHashIntSet::loadFromString — This factory method creates a set from a string
  - QuickHashIntSet::saveToFile — This method stores an in-memory set to disk
  - QuickHashIntSet::saveToString — This method returns a serialized version of the set
- QuickHashIntHash — The QuickHashIntHash class
  - QuickHashIntHash::add — This method adds a new entry to the hash
  - QuickHashIntHash::__construct — Creates a new QuickHashIntHash object
  - QuickHashIntHash::delete — This method deletes am entry from the hash
  - QuickHashIntHash::exists — This method checks whether a key is part of the hash
  - QuickHashIntHash::get — This method retrieves a value from the hash by its key
  - QuickHashIntHash::getSize — Returns the number of elements in the hash
  - QuickHashIntHash::loadFromFile — This factory method creates a hash from a file
  - QuickHashIntHash::loadFromString — This factory method creates a hash from a string
  - QuickHashIntHash::saveToFile — This method stores an in-memory hash to disk
  - QuickHashIntHash::saveToString — This method returns a serialized version of the hash
  - QuickHashIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
  - QuickHashIntHash::update — This method updates an entry in the hash with a new value
- QuickHashStringIntHash — The QuickHashStringIntHash class
  - QuickHashStringIntHash::add — This method adds a new entry to the hash
  - QuickHashStringIntHash::__construct — Creates a new QuickHashStringIntHash object
  - QuickHashStringIntHash::delete — This method deletes am entry from the hash
  - QuickHashStringIntHash::exists — This method checks whether a key is part of the hash
  - QuickHashStringIntHash::get — This method retrieves a value from the hash by its key
  - QuickHashStringIntHash::getSize — Returns the number of elements in the hash
  - QuickHashStringIntHash::loadFromFile — This factory method creates a hash from a file
  - QuickHashStringIntHash::loadFromString — This factory method creates a hash from a string
  - QuickHashStringIntHash::saveToFile — This method stores an in-memory hash to disk
  - QuickHashStringIntHash::saveToString — This method returns a serialized version of the hash
  - QuickHashStringIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
  - QuickHashStringIntHash::update — This method updates an entry in the hash with a new value
- QuickHashIntStringHash — The QuickHashIntStringHash class
  - QuickHashIntStringHash::add — This method adds a new entry to the hash
  - QuickHashIntStringHash::__construct — Creates a new QuickHashIntStringHash object
  - QuickHashIntStringHash::delete — This method deletes am entry from the hash
  - QuickHashIntStringHash::exists — This method checks whether a key is part of the hash
  - QuickHashIntStringHash::get — This method retrieves a value from the hash by its key
  - QuickHashIntStringHash::getSize — Returns the number of elements in the hash
  - QuickHashIntStringHash::loadFromFile — This factory method creates a hash from a file
  - QuickHashIntStringHash::loadFromString — This factory method creates a hash from a string
  - QuickHashIntStringHash::saveToFile — This method stores an in-memory hash to disk
  - QuickHashIntStringHash::saveToString — This method returns a serialized version of the hash
  - QuickHashIntStringHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
  - QuickHashIntStringHash::update — This method updates an entry in the hash with a new value

# The QuickHashIntSet class

## Introduction

This class wraps around a set containing integer numbers.

Sets can also be iterated over with foreach as the Iterator interface is implemented as well. The order of which elements are returned in is not guaranteed.

## Class synopsis

QuickHashIntSet
class QuickHashIntSet {
/* Constants */
const integer QuickHashIntSet::CHECK_FOR_DUPES = 1 ;
const integer QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC = 2 ;
const integer QuickHashIntSet::HASHER_NO_HASH = 256 ;
const integer QuickHashIntSet::HASHER_JENKINS1 = 512 ;
const integer QuickHashIntSet::HASHER_JENKINS2 = 1024 ;
/* Methods */
public bool add ( int `$key` )
public __construct ( int `$size` [, int `$options` ] )
public bool delete ( int `$key` )
public bool exists ( int `$key` )
public int getSize ( void )
public static QuickHashIntSet loadFromFile ( string `$filename` [, int `$size` [, int `$options` ]] )
public static QuickHashIntSet loadFromString ( string `$contents` [, int `$size` [, int `$options` ]] )
public void saveToFile ( string `$filename` )
public string saveToString ( void )
}

## Predefined Constants

`QuickHashIntSet::CHECK_FOR_DUPES`

  If enabled, adding duplicate elements to a set (through either add() or loadFromFile()) will result in those elements to be dropped from the set. This will take up extra time, so only used when it is required.

`QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC`

  Disables the use of PHP's internal memory manager for internal set structures. With this option enabled, internal allocations will not count towards the memory_limit settings.

`QuickHashIntSet::HASHER_NO_HASH`

  Selects to not use a hashing function, but merely use a modulo to find the bucket list index. This is not faster than normal hashing, and gives more collisions.

`QuickHashIntSet::HASHER_JENKINS1`

  This is the default hashing function to turn the integer hashes into bucket list indexes.

`QuickHashIntSet::HASHER_JENKINS2`

  Selects a variant hashing algorithm.

# The QuickHashIntHash class

## Introduction

This class wraps around a hash containing integer numbers, where the values are also integer numbers. Hashes are also available as implementation of the ArrayAccess interface.

Hashes can also be iterated over with foreach as the Iterator interface is implemented as well. The order of which elements are returned in is not guaranteed.

## Class synopsis

QuickHashIntHash
class QuickHashIntHash {
/* Constants */
const integer QuickHashIntHash::CHECK_FOR_DUPES = 1 ;
const integer QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC = 2 ;
const integer QuickHashIntHash::HASHER_NO_HASH = 256 ;
const integer QuickHashIntHash::HASHER_JENKINS1 = 512 ;
const integer QuickHashIntHash::HASHER_JENKINS2 = 1024 ;
/* Methods */
public bool add ( int `$key` [, int `$value` ] )
public __construct ( int `$size` [, int `$options` ] )
public bool delete ( int `$key` )
public bool exists ( int `$key` )
public int get ( int `$key` )
public int getSize ( void )
public static QuickHashIntHash loadFromFile ( string `$filename` [, int `$options` ] )
public static QuickHashIntHash loadFromString ( string `$contents` [, int `$options` ] )
public void saveToFile ( string `$filename` )
public string saveToString ( void )
public bool set ( int `$key` , int `$value` )
public bool update ( int `$key` , int `$value` )
}

## Predefined Constants

`QuickHashIntHash::CHECK_FOR_DUPES`

  If enabled, adding duplicate elements to a set (through either add() or loadFromFile()) will result in those elements to be dropped from the set. This will take up extra time, so only used when it is required.

`QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC`

  Disables the use of PHP's internal memory manager for internal set structures. With this option enabled, internal allocations will not count towards the memory_limit settings.

`QuickHashIntHash::HASHER_NO_HASH`

  Selects to not use a hashing function, but merely use a modulo to find the bucket list index. This is not faster than normal hashing, and gives more collisions.

`QuickHashIntHash::HASHER_JENKINS1`

  This is the default hashing function to turn the integer hashes into bucket list indexes.

`QuickHashIntHash::HASHER_JENKINS2`

  Selects a variant hashing algorithm.

# The QuickHashStringIntHash class

## Introduction

This class wraps around a hash containing strings, where the values are integer numbers. Hashes are also available as implementation of the ArrayAccess interface.

Hashes can also be iterated over with foreach as the Iterator interface is implemented as well. The order of which elements are returned in is not guaranteed.

## Class synopsis

QuickHashStringIntHash
class QuickHashStringIntHash {
/* Constants */
const integer QuickHashStringIntHash::CHECK_FOR_DUPES = 1 ;
const integer QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC = 2 ;
/* Methods */
public bool add ( string `$key` , int `$value` )
public __construct ( int `$size` [, int `$options` = 0 ] )
public bool delete ( string `$key` )
public bool exists ( string `$key` )
public mixed get ( string `$key` )
public int getSize ( void )
public static QuickHashStringIntHash loadFromFile ( string `$filename` [, int `$size` = 0 [, int `$options` = 0 ]] )
public static QuickHashStringIntHash loadFromString ( string `$contents` [, int `$size` = 0 [, int `$options` = 0 ]] )
public void saveToFile ( string `$filename` )
public string saveToString ( void )
public int set ( string `$key` , int `$value` )
public bool update ( string `$key` , int `$value` )
}

## Predefined Constants

`QuickHashStringIntHash::CHECK_FOR_DUPES`

  If enabled, adding duplicate elements to a set (through either add() or loadFromFile()) will result in those elements to be dropped from the set. This will take up extra time, so only used when it is required.

`QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC`

  Disables the use of PHP's internal memory manager for internal set structures. With this option enabled, internal allocations will not count towards the memory_limit settings.

# The QuickHashIntStringHash class

## Introduction

This class wraps around a hash containing integer numbers, where the values are strings. Hashes are also available as implementation of the ArrayAccess interface.

Hashes can also be iterated over with foreach as the Iterator interface is implemented as well. The order of which elements are returned in is not guaranteed.

## Class synopsis

QuickHashIntStringHash
class QuickHashIntStringHash {
/* Constants */
const integer QuickHashIntStringHash::CHECK_FOR_DUPES = 1 ;
const integer QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC = 2 ;
const integer QuickHashIntStringHash::HASHER_NO_HASH = 256 ;
const integer QuickHashIntStringHash::HASHER_JENKINS1 = 512 ;
const integer QuickHashIntStringHash::HASHER_JENKINS2 = 1024 ;
/* Methods */
public bool add ( int `$key` , string `$value` )
public __construct ( int `$size` [, int `$options` = 0 ] )
public bool delete ( int `$key` )
public bool exists ( int `$key` )
public mixed get ( int `$key` )
public int getSize ( void )
public static QuickHashIntStringHash loadFromFile ( string `$filename` [, int `$size` = 0 [, int `$options` = 0 ]] )
public static QuickHashIntStringHash loadFromString ( string `$contents` [, int `$size` = 0 [, int `$options` = 0 ]] )
public void saveToFile ( string `$filename` )
public string saveToString ( void )
public int set ( int `$key` , string `$value` )
public bool update ( int `$key` , string `$value` )
}

## Predefined Constants

`QuickHashIntStringHash::CHECK_FOR_DUPES`

  If enabled, adding duplicate elements to a set (through either add() or loadFromFile()) will result in those elements to be dropped from the set. This will take up extra time, so only used when it is required.

`QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC`

  Disables the use of PHP's internal memory manager for internal set structures. With this option enabled, internal allocations will not count towards the memory_limit settings.

`QuickHashIntStringHash::HASHER_NO_HASH`

  Selects to not use a hashing function, but merely use a modulo to find the bucket list index. This is not faster than normal hashing, and gives more collisions.

`QuickHashIntStringHash::HASHER_JENKINS1`

  This is the default hashing function to turn the integer hashes into bucket list indexes.

`QuickHashIntStringHash::HASHER_JENKINS2`

  Selects a variant hashing algorithm.