class Sdshrd{
public $len;#已经占用的空间长度
public $free;#还剩余空间数量
public $arr;#存储数据位置
public $defaut=512;
public function __construct($value){
$this->arr = new SplFixedArray($this->defaut);
for($i=0;$i<strlen($value);$i++){
$this->arr[$i]=$value[$i];
}
$this->len=strlen($value);
$this->free = $this->defaut-strlen($value);
}
}
class Ticket{
private $check=array();
private $default=512;
public function __construct(){
$this->check = new SplFixedArray($this->default);
}
private function hash($name){
$total=0;
for($i=0;$i<strlen($name);$i++){
$total+=ord($name[$i]);
}
return $total%$this->default;
}
public function set($name,$value){
$index = $this->hash($name);
$objsds = new Sdshrd($value);
$this->check[$index]=$objsds;
}
public function get($name){
$str="";
$index = $this->hash($name);
$obj = $this->check[$index];
foreach ($obj->arr as $key => $value) {
$str.=$value;
}
return $str;
}
}
$objticek = new Ticket();
$name="name";
$value="lisi";
$objticek->set($name,$value);
$str = $objticek->get($name);
echo $str;