mirror of
https://github.com/renbaoshuo/S2OJ.git
synced 2024-12-27 01:31:52 +00:00
96d4a3ecf7
Due to historical reasons, the code is in subfolder "1". With SVN removal, we place the code back and remove the annoying "1" folder.
48 lines
1.0 KiB
PHP
48 lines
1.0 KiB
PHP
<?php
|
|
|
|
/**
|
|
* This is in almost every respect equivalent to an array except
|
|
* that it keeps track of which keys were accessed.
|
|
*
|
|
* @warning For the sake of backwards compatibility with early versions
|
|
* of PHP 5, you must not use the $hash[$key] syntax; if you do
|
|
* our version of offsetGet is never called.
|
|
*/
|
|
class HTMLPurifier_StringHash extends ArrayObject
|
|
{
|
|
/**
|
|
* @type array
|
|
*/
|
|
protected $accessed = array();
|
|
|
|
/**
|
|
* Retrieves a value, and logs the access.
|
|
* @param mixed $index
|
|
* @return mixed
|
|
*/
|
|
public function offsetGet($index)
|
|
{
|
|
$this->accessed[$index] = true;
|
|
return parent::offsetGet($index);
|
|
}
|
|
|
|
/**
|
|
* Returns a lookup array of all array indexes that have been accessed.
|
|
* @return array in form array($index => true).
|
|
*/
|
|
public function getAccessed()
|
|
{
|
|
return $this->accessed;
|
|
}
|
|
|
|
/**
|
|
* Resets the access array.
|
|
*/
|
|
public function resetAccessed()
|
|
{
|
|
$this->accessed = array();
|
|
}
|
|
}
|
|
|
|
// vim: et sw=4 sts=4
|