单例模式,只允许内部实例化当前对象

<?php
/**
 * 单例模式
 *
 */

/**
 * 1:封锁new操作
 * 2:留个接口new 
 * 3:getIns 先判断实例
 *
 */

class sigle{
    // 静态属性存储实例化
    private static $ins = null;
    private  function __construct(){

    }

    /**
     * 关闭了new操作,留这个方法
     */
    public static function getIns(){
        if (self::$ins == null) {
            self::$ins = new self();
        }
        return self::$ins;

    }

    /**
     * 封锁clone
     */
    private function __clone(){

    }
}

$sigle1 = sigle::getIns();
$sigle2 = sigle::getIns();
//clone $sigle1;
if ($sigle1 == $sigle2) {
    echo '是同一个类';
}