PHP單例模式模擬Java Bean實(shí)現(xiàn)方法示例詳解
實(shí)例講述了PHP單例模式模擬Java Bean實(shí)現(xiàn)方法,介紹PHP單例模式模擬Java Bean實(shí)現(xiàn)方法,涉及php面向?qū)ο蟪绦蛟O(shè)計(jì)相關(guān)操作技巧,需要的朋友可以參考下。...
文章主要介紹了PHP單例模式模擬Java Bean實(shí)現(xiàn)方法,涉及php面向?qū)ο蟪绦蛟O(shè)計(jì)相關(guān)操作技巧,需要的朋友可以參考下。
實(shí)例講述了PHP單例模式模擬Java Bean實(shí)現(xiàn)方法,具體如下:
問題:
根據(jù)如下楊輝三角形
實(shí)現(xiàn)一個(gè)get_value($row,$col)方法:
(前一個(gè)由于代碼是手機(jī)編輯的,很亂,重新發(fā)下)只是為了實(shí)現(xiàn)這個(gè)方法,很簡單,幾行代碼就能實(shí)現(xiàn),但如果行和列的值稍微大點(diǎn),你就發(fā)現(xiàn),運(yùn)行時(shí)間很長。所以就這次的題做了個(gè)稍微復(fù)雜點(diǎn)的例子,說明下單例模式的使用、static的使用、模擬Java Bean、static的使用、遞歸函數(shù)案例等。?
/**
* author Winter
* 2016-11-22
* PHP的單例模式
* 模擬Java Bean
* Class Php_bean
*/
class
Php_bean{
private
static
$_instance
= null;
private
function
__construct(){}
private
$hit
= 0;
//命中次數(shù)
private
$array
=
array
();
//緩存
private
$itratorCount
= 0;
//迭代次數(shù)
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/>"
;
運(yùn)行結(jié)果:
int(1) hit:0
itratorCount:1
希望PHP單例模式模擬Java Bean實(shí)現(xiàn)方法示例詳解所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- PHP圖像處理繪圖、水印、驗(yàn)證碼、圖像壓縮技術(shù)實(shí)例總
- PHP實(shí)現(xiàn)高清晰度無損圖片壓縮功能的代碼
- 用PHP處理png圖片白色背景色改為透明色的實(shí)例代碼
- 關(guān)于PHP往mysql數(shù)據(jù)庫中批量插入數(shù)據(jù)實(shí)例教程
- Php兩點(diǎn)地理坐標(biāo)距離的計(jì)算方法和具體代碼
- PHP獲取HTTP body內(nèi)容的方法
- PHP面向?qū)ο蟪绦蛟O(shè)計(jì)中獲取對(duì)象屬性的3種方法實(shí)例分析
- php5.5新增的yield關(guān)鍵字功能與相關(guān)使用技巧
- Windows7下IIS+php配置教程詳細(xì)介紹
- PHP序列化的四種實(shí)現(xiàn)方法與橫向?qū)Ρ冉坛?/a>
PHP圖像處理繪圖、水印、驗(yàn)證碼、圖像壓縮技術(shù)實(shí)例總結(jié)
文章主要介紹了PHP圖像處理技術(shù),結(jié)合實(shí)例形式總結(jié)分析了php繪圖、水印、驗(yàn)證碼、圖像壓縮等相關(guān)函數(shù)、功能與圖形繪制實(shí)現(xiàn)技巧,需要的朋友可以參考下:1、繪圖 場(chǎng)景:...
PHP實(shí)現(xiàn)高清晰度無損圖片壓縮功能的代碼
經(jīng)常會(huì)用到把上傳的大圖片壓縮,特別是體積,在微信等APP應(yīng)用上,也默認(rèn)都是有壓縮的,那么,怎么樣對(duì)圖片大幅度壓縮卻仍能保持較高的清晰度呢?...
用PHP處理png圖片白色背景色改為透明色的實(shí)例代碼
文章主要介紹了php 處理png圖片白色背景色改為透明色的實(shí)例代碼,文中通過實(shí)例代碼給大家介紹了用PHP的GD庫把圖片的背景替換成透明背景,需要的朋友參考下...
關(guān)于PHP往mysql數(shù)據(jù)庫中批量插入數(shù)據(jù)實(shí)例教程
文章主要給大家介紹了關(guān)于php往mysql中批量插入數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧...
Php兩點(diǎn)地理坐標(biāo)距離的計(jì)算方法和具體代碼
文章主要為大家詳細(xì)介紹了php兩點(diǎn)地理坐標(biāo)距離的計(jì)算方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下php計(jì)算兩點(diǎn)地理坐標(biāo)距離的具體代碼,具體內(nèi)容如下功能:根據(jù)圓周率和...
PHP獲取HTTP body內(nèi)容的方法
今天小編就為大家分享一篇PHP獲取HTTP body內(nèi)容的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧有時(shí)候我們獲取數(shù)據(jù)時(shí)需要根據(jù)Header中的格式來解析,比...
PHP面向?qū)ο蟪绦蛟O(shè)計(jì)中獲取對(duì)象屬性的3種方法實(shí)例分析
文章主要介紹了PHP獲取對(duì)象屬性的三種方法,結(jié)合實(shí)例形式分析了php面向?qū)ο蟪绦蛟O(shè)計(jì)中獲取對(duì)象屬性的常見操作技巧,需要的朋友可以參考下。PHP獲取對(duì)象屬性的三種方法,具體如下...
php5.5新增的yield關(guān)鍵字功能與相關(guān)使用技巧
文章主要介紹了PHP yield關(guān)鍵字功能與用法,結(jié)合實(shí)例形式分析了php5.5新增的yield關(guān)鍵字功能與相關(guān)使用技巧,需要的朋友可以參考下實(shí)例講述PHP yield關(guān)鍵字功能與用法具體如下:y...
Windows7下IIS+php配置教程詳細(xì)介紹
文章主要為大家詳細(xì)介紹了Windows7下IIS+php配置教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下...
PHP序列化的四種實(shí)現(xiàn)方法與橫向?qū)Ρ冉坛?/a>
在PHP中,序列化用于存儲(chǔ)或傳遞 PHP 的值的過程中,同時(shí)不丟失其類型和結(jié)構(gòu)。本文講述PHP序列化的四種方案,感興趣的可以了解一下一、PHP 序列化變量的 4 種方法序列化是將變量轉(zhuǎn)...