Example #1
0
<?php

/**
 * Created by PhpStorm.
 * User: KeenSting
 * Date: 2015/11/25
 * Time: 23:46
 */
require 'single.php';
//exit;
$single = Single::getInstance();
$single->run();
//正确方法,用双冒号::操作符访问静态方法获取实例
//$danli = Danli::getInstance();
//$danli->test();
Example #2
0
    {
        /*
         * trigger_error() 函数创建用户定义的错误消息。
         * trigger_error() 用于在用户指定的条件下触发一个错误消息。
         * 它与内建的错误处理器一同使用,也可以与由 set_error_handler() 
         * 函数创建的用户自定义函数使用。
         */
        trigger_error('Clone is not allow!', E_USER_ERROR);
    }
    //单例方法,用于访问实例的公共的静态方法
    public static function getInstance()
    {
        //使用instanceof关键字可以确定一个对象是类的实例、类的子类,还是实现了某个特定接口,并进行相应的操作。
        if (!self::$_instance instanceof self) {
            self::$_instance = new self();
        }
        return self::$_instance;
    }
    public function test()
    {
        echo '调用方法成功';
    }
}
//用new实例化private标记构造函数的类会报错
//$ins = new Single();
//正确方法,用双冒号::操作符访问静态方法获取实例
$ins = Single::getInstance();
$ins->test();
//复制(克隆)对象将导致一个E_USER_ERROR
$ins_clone = clone $ins;
echo "You will not see me!";