文章主要介紹了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程序設計有所幫助。
分享到:
投訴收藏














