PHP單例模式模擬Java Bean實現方法示例詳解
實例講述了PHP單例模式模擬Java Bean實現方法,介紹PHP單例模式模擬Java Bean實現方法,涉及php面向對象程序設計相關操作技巧,需要的朋友可以參考下。...
文章主要介紹了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
*/
class
Php_bean{
private
static
$_instance
= null;
private
function
__construct(){}
private
$hit
= 0;
//命中次數
private
$array
=
array
();
//緩存
private
$itratorCount
= 0;
//迭代次數
public
function
add_itratorCount(){
$this
->itratorCount ++;
}
public
function
get_itratorCount(){
return
$this
->itratorCount;
}
public
function
set_cache(
$row
,
$col
,
$value
){
$this
->
array
[
$row
.
"_"
.
$col
] =
$value
;
}
public
function
get_cache(
$row
,
$col
){
if
(isset(
$this
->
array
[
$row
.
"_"
.
$col
])){
return
$this
->
array
[
$row
.
"_"
.
$col
];
}
else
{
return
false;
}
}
public
function
add_hit(){
$this
->hit ++;
}
public
function
get_hit(){
return
$this
->hit;
}
public
static
function
instance(){
if
(self::
$_instance
instanceof
self)
return
self::
$_instance
;
self::
$_instance
=
new
self;
return
self::
$_instance
;
}
}
/**
* @param $row 行
* @param $col 列
* @return int
*/
function
get_value(
$row
,
$col
){
$php_bean
= Php_bean::instance();
$php_bean
->add_itratorCount();
if
(
$col
>
$row
)
return
0;
if
(
$row
<=0)
return
0;
if
(
$col
==
$row
)
return
1;
if
(
$row
== 1)
return
1;
if
(
$col
== 1)
return
1;
$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程序設計有所幫助。
-
PHP圖像處理繪圖、水印、驗證碼、圖像壓縮技術實例總結
文章主要介紹了PHP圖像處理技術,結合實例形式總結分析了php繪圖、水印、驗證碼、圖像壓縮等相關函數、功能與圖形繪制實現技巧,需要的朋友可以參考下:1、繪圖 場景:...
-
PHP實現高清晰度無損圖片壓縮功能的代碼
經常會用到把上傳的大圖片壓縮,特別是體積,在微信等APP應用上,也默認都是有壓縮的,那么,怎么樣對圖片大幅度壓縮卻仍能保持較高的清晰度呢?...
-
用PHP處理png圖片白色背景色改為透明色的實例代碼
文章主要介紹了php 處理png圖片白色背景色改為透明色的實例代碼,文中通過實例代碼給大家介紹了用PHP的GD庫把圖片的背景替換成透明背景,需要的朋友參考下...
-
關于PHP往mysql數據庫中批量插入數據實例教程
文章主要給大家介紹了關于php往mysql中批量插入數據的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧...
-
Php兩點地理坐標距離的計算方法和具體代碼
文章主要為大家詳細介紹了php兩點地理坐標距離的計算方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下php計算兩點地理坐標距離的具體代碼,具體內容如下功能:根據圓周率和...
-
PHP獲取HTTP body內容的方法
今天小編就為大家分享一篇PHP獲取HTTP body內容的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧有時候我們獲取數據時需要根據Header中的格式來解析,比...
-
PHP面向對象程序設計中獲取對象屬性的3種方法實例分析
文章主要介紹了PHP獲取對象屬性的三種方法,結合實例形式分析了php面向對象程序設計中獲取對象屬性的常見操作技巧,需要的朋友可以參考下。PHP獲取對象屬性的三種方法,具體如下...
-
php5.5新增的yield關鍵字功能與相關使用技巧
文章主要介紹了PHP yield關鍵字功能與用法,結合實例形式分析了php5.5新增的yield關鍵字功能與相關使用技巧,需要的朋友可以參考下實例講述PHP yield關鍵字功能與用法具體如下:y...
-
Windows7下IIS+php配置教程詳細介紹
文章主要為大家詳細介紹了Windows7下IIS+php配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下...
-
PHP序列化的四種實現方法與橫向對比教程
在PHP中,序列化用于存儲或傳遞 PHP 的值的過程中,同時不丟失其類型和結構。本文講述PHP序列化的四種方案,感興趣的可以了解一下一、PHP 序列化變量的 4 種方法序列化是將變量轉...