首頁 >php教程 >php手册 >PHP Collection类

PHP Collection类

WBOY
WBOY原創
2016-06-06 19:38:041793瀏覽

无详细内容 无 ?phpheader("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=NUL

<?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);
		}
	}
}
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn