Singleton.php 807 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: wangchen
  5. * Date: 2019-04-23
  6. * Time: 11:42
  7. */
  8. namespace App\Libs;
  9. trait Singleton
  10. {
  11. /**
  12. * 该属性用来保存实例
  13. * @var
  14. */
  15. private static $instance;
  16. /**
  17. * 创建一个用来实例化对象的方法
  18. */
  19. public static function getInstance(...$args)
  20. {
  21. return new static($args);
  22. // if (!(self::$instance instanceof self)) {
  23. // self::$instance = new static($args); // 后期静态绑定
  24. // }
  25. // return self::$instance;
  26. }
  27. /**
  28. * 构造函数为private,防止创建对象
  29. */
  30. public function __construct()
  31. {
  32. }
  33. /**
  34. * 防止对象被复制
  35. */
  36. private function __clone()
  37. {
  38. trigger_error('Clone is not allowed!');
  39. }
  40. }