Singleton.php 765 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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. if (!(self::$instance instanceof self)) {
  22. self::$instance = new static($args); // 后期静态绑定
  23. }
  24. return self::$instance;
  25. }
  26. /**
  27. * 构造函数为private,防止创建对象
  28. */
  29. public function __construct()
  30. {
  31. }
  32. /**
  33. * 防止对象被复制
  34. */
  35. private function __clone()
  36. {
  37. trigger_error('Clone is not allowed!');
  38. }
  39. }