PHP单例模式模拟Java Bean实现方法示例详解
2019-01-24 09:49
来源:
互联网
文章主要介绍了PHP单例模式模拟Java Bean实现方法,涉及php面向对象程序设计相关操作技巧,需要的朋友可以参考下。
实例讲述了PHP单例模式模拟Java Bean实现方法,具体如下:
问题:
根据如下杨辉三角形

实现一个get_value($row,$col)方法:
(前一个由于代码是手机编辑的,很乱,重新发下)只是为了实现这个方法,很简单,几行代码就能实现,但如果行和列的值稍微大点,你就发现,运行时间很长。所以就这次的题做了个稍微复杂点的例子,说明下单例模式的使用、static的使用、模拟Java Bean、static的使用、递归函数案例等。?
/*** author Winter* 2016-11-22* PHP的单例模式* 模拟Java Bean* Class Php_bean*/classPhp_bean{privatestatic$_instance= null;privatefunction__construct(){}private$hit= 0;//命中次数private$array=array();//缓存private$itratorCount= 0;//迭代次数publicfunctionadd_itratorCount(){$this->itratorCount ++;}publicfunctionget_itratorCount(){return$this->itratorCount;}publicfunctionset_cache($row,$col,$value){$this->array[$row."_".$col] =$value;}publicfunctionget_cache($row,$col){if(isset($this->array[$row."_".$col])){return$this->array[$row."_".$col];}else{returnfalse;}}publicfunctionadd_hit(){$this->hit ++;}publicfunctionget_hit(){return$this->hit;}publicstaticfunctioninstance(){if(self::$_instanceinstanceofself)returnself::$_instance;self::$_instance=newself;returnself::$_instance;}}/*** @param $row 行* @param $col 列* @return int*/functionget_value($row,$col){$php_bean= Php_bean::instance();$php_bean->add_itratorCount();if($col>$row)return0;if($row<=0)return0;if($col==$row)return1;if($row== 1)return1;if($col== 1)return1;$pre=$php_bean->get_cache($row-1,$col-1);$next=$php_bean->get_cache($row-1,$col-0);if($pre=== false){$pre= get_value($row-1,$col-1);$php_bean->set_cache($row-1,$col-1,$pre);}else{$php_bean->add_hit();}if($next=== false){$next= get_value($row-1,$col-0);$php_bean->set_cache($row-1,$col-0,$next);}else{$php_bean->add_hit();}$value=$pre+$next;return$value;}$v= get_value(6,6);var_dump($v);$php_bean_obj= Php_bean::instance();echo"hit:".$php_bean_obj->get_hit()."<br/>";echo"itratorCount:".$php_bean_obj->get_itratorCount()."<br/>";
运行结果:
int(1) hit:0
itratorCount:1
希望PHP单例模式模拟Java Bean实现方法示例详解所述对大家PHP程序设计有所帮助。