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 种方法序列化是将变量转...