• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP单例模式模拟Java Bean实现方法示例

    本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • Java单例模式的讲解
    • 详解java中的6种单例写法及优缺点
    • Kotlin中单例模式和Java的对比浅析
    • 详解Java实现单例的五种方式
    • java使用静态关键字实现单例模式
    • Java单例模式下的MongoDB数据库操作工具类
    • 全面解析Java设计模式之单例模式
    • 23种设计模式(1) java单例模式
    • Java单例模式实现静态内部类方法示例
    • Java正确实现一个单例设计模式的示例
    上一篇:thinkPHP框架实现的简单计算器示例
    下一篇:Laravel框架定时任务2种实现方式示例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    PHP单例模式模拟Java Bean实现方法示例 PHP,单例,模式,模拟,Java,