<?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();
{ /* * 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!";