fork download
  1. <?php
  2.  
  3. trait Singleton{
  4.  
  5. final public static function get_instance(...$args) {
  6.  
  7. static $instance = [];
  8. $called_class = get_called_class();
  9.  
  10. if( !isset( $instance[ $called_class ] ) ) {
  11. $instance[$called_class] = new $called_class(...$args);
  12. }
  13.  
  14. return $instance[ $called_class ];
  15. }
  16. }
  17.  
  18. class New_Post{
  19. use Singleton;
  20.  
  21. protected function __construct( $first_name, $last_name, $email, $phone, $date ){
  22. $this->first_name = $first_name;
  23. $this->last_name = $last_name;
  24. $this->email = $email;
  25. $this->phone = $phone;
  26. $this->date = $date;
  27. }
  28. }
  29.  
  30. $post = New_Post::get_instance("First", "Last", "email", "123-456-7890", "today");
  31.  
  32. var_dump($post);
  33.  
  34.  
Success #stdin #stdout 0.02s 25488KB
stdin
Standard input is empty
stdout
object(New_Post)#1 (5) {
  ["first_name"]=>
  string(5) "First"
  ["last_name"]=>
  string(4) "Last"
  ["email"]=>
  string(5) "email"
  ["phone"]=>
  string(12) "123-456-7890"
  ["date"]=>
  string(5) "today"
}