PHP的Collection集合类
2018-07-20 来源:open-open
<?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); } } }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
上一篇:python 实现选择排序
最新资讯
热门推荐