PHP的Collection集合類
<?php
header("Content-type:text/html; charset=utf-8");
class Collection{
private $_members=array();
private $_onload;
private $_isLoaded=false;
public function startLoad(){
$this->_checkCallback();
}
public function addItem($obj,$key=NULL){
$this->_checkCallback();
if($key){
if(isset($this->_members[$key])){
throw new Exception("Key \\"$key\\" already in use!");
}else{
$this->_members[$key]=$obj;
}
}else{
$this->_members[]=$obj;
}
}
public function removeItem($key){
$this->_checkCallback();
if(isset($this->_members[$key])){
unset($this->_members[$key]);
}else{
throw new Exception("Invalid key \\"$key\\"!");
}
}
public function getItem($key){
$this->_checkCallback();
if(isset($this->_members[$key])){
return $this->_members[$key];
}else{
throw new Exception("Invalid key \\"$key\\"!");
}
}
public function keys(){
$this->_checkCallback();
return array_keys($this->_members);
}
public function length(){
$this->_checkCallback();
return sizeof($this->_members);
}
public function exists($key){
$this->_checkCallback();
return (isset($this->_members[$key]));
}
public function setLoadCallback($functionName,$objOrClass=NULL){
if($objOrClass){
$callback=array($objOrClass,$functionName);
}else{
$callback=$functionName;
}
if(!is_callable($callback)){
/*throw new Exception("$callableName is not callable"."as a parameter to oonload");*/
echo "$callback is not callable<br>";
return false;
}
$this->_onload=$callback;
}
private function _checkCallback(){
if(isset($this->_onload)&&!$this->_isLoaded){
$this->_isLoaded=true;
call_user_func($this->_onload,$this);
}
}
}
</pre>
本文由用戶 phpw34 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!