| 
<?php
 require_once 'tuple-dictionary.php';
 
 // A couple of handy instances
 $obj1 = new \stdClass();
 $obj2 = new \stdClass();
 
 // A couple of keys
 $key1 = array(
 $obj1,
 array( 'tick' => $obj2 ),
 null,
 null,
 "x",
 );
 
 $key2 = array(
 $obj2,
 array( $obj1 ),
 "z",
 );
 
 // Create the dictionary and add a couple of values
 $dict = new \TupleDictionary( 'md5' );
 $dict->addValue( $key1, 1 );
 $dict->addValue( $key2, 2 );
 
 // Retrieve values for each key by accessing the keys collection
 $keys = $dict->getKeys();
 foreach ( $keys as $key )
 {
 $value = $dict->getValue( $key, 'xx' );
 }
 
 // Access values by using the original key variables or recreate
 $value = $dict->getValue( $key1, "yy" );
 
 // Recreate the key to show there is nothing special about a key instance
 $key2 = array(
 $obj2,
 array( $obj1 ),
 "z",
 );
 $value = $dict->getValue( $key2 );
 
 // A key containing an array that has any kind of change such as the order
 // of the element or, as in this case, a change to an index of an array
 // will yield a different key
 $key3 = array(
 $obj1,
 array( 'tock' => $obj2 ),
 null,
 null,
 "x",
 );
 $value = $dict->getValue( $key3, "yy" );
 
 // Delete a key and show the it has been deleted by retrieving the keys once
 // again when there will be just one element.
 
 $result = $dict->delete( $key1 );
 $keys = $dict->getKeys();
 
 // Also the previously successful call to retrieve the value will fail.
 $value = $dict->getValue( $key1, "yy" );
 
 |