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

PHP Collection类

WBOY
发布: 2016-06-06 19:38:04
原创
1795 人浏览过

无详细内容 无 ?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);
		}
	}
}
登录后复制
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板