• PHP 单例模式


    /***********************************************/
    /******************单列模式*********************/
    /***********************************************/


    1.1 单列模式

    单例模式: 一个类只能有一个实例

    构造函数 非public

    三大原则:

    1: 构造函数 需要标记为非public(只能被其自身实例化)

    2: 拥有一个保存类的实例的静态成员变量 $_instance

    3: 拥有一个访问这个实例的公共的静态方法

    /**********************************************************/

    <?php

    class inStance{

    // 保存类实例的静态变量

    private static $_instance;

    // 构造函数 声明 为 非public

    private function __construct(){

    }

    // 访问这个实例的 公共的 静态方法

    public static function getInstance(){

    // 判断 类是否被实例

    if (!(self::$_instance instanceof self)) {

    // 静态变量 = 实例化类本身

    self::$_instance = new self();

    }

    return self::$_instance;
    }

    // 自己定义一个方法

    public function test(){

    echo "test";

    }

    // 防止用户复制 对象实例

    public function __clone(){

    // trigger_error() 函数创建用户定义的错误消息

    trigger_error('Clone is not allow' ,E_USER_ERROR);

    }

    }

    // 这个写法会出错,因为构造方法被声明为private

    $test = new Example;

    // 下面将得到inStance类的单例对象

    $test = inStance::getInstance();

    $test->test();

    // 复制对象将导致一个E_USER_ERROR.

    $test_clone = clone $test;

    ?>

  • 相关阅读:
    git 常用命令
    SVG Sprite技术介绍
    添加样式(后台给字段note(left,height-auto ))
    assign,copy,retain,readonly,readwrite之间区别
    遍历(字典的遍历)
    Block
    loadView、viewDidLoad及viewDidUnload的关系
    IOS单例模式(Singleton单粒模式)
    模仿,后台
    仿站 通用套路
  • 原文地址:https://www.cnblogs.com/laowenBlog/p/5439985.html
Copyright © 2020-2023  润新知