php - 单例模式的一个问题,static $db = null为什么只执行一次

查看:71
本文介绍了php - 单例模式的一个问题,static $db = null为什么只执行一次的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

<?php
require_once("DB.php");

class DatabaseConnection
{
  public static function get()
  {
    static $db = null;
    if ( $db == null )
      echo '1111';
      $db = new DatabaseConnection();
    return $db;
  }

  private function __construct()
  {
  }
  
}

var_dump(DatabaseConnection::get());
var_dump(DatabaseConnection::get());
?>

为什么 结果只输出一次1111
上面的static $db = null这里不是每执行一次get()就重新对$db付值为null了吗,求解下

解决方案

因为参数是static,你在末尾对$db = new DatabaseConnection();你第二次进来的时候其实$db在第一次发生变化,所以不是null.
不信你吧static换成public,应该就会出现两次

这篇关于php - 单例模式的一个问题,static $db = null为什么只执行一次的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆