fork download
  1. <?php
  2.  
  3. class Groot {
  4.  
  5. private $name;
  6.  
  7. private function __construct() {
  8. $this->name = "I'm groot!";
  9. }
  10.  
  11. public function getName() {
  12. return $this->name;
  13. }
  14.  
  15. public static function create($callback) {
  16.  
  17. // Cria uma nova instância da classe:
  18. $new = new self();
  19.  
  20. // Associa a função ao objeto:
  21. $callback = Closure::bind($callback, null, $new);
  22.  
  23. // Invoca a função anônima passando a instância como parâmetro:
  24. $callback($new);
  25.  
  26. }
  27.  
  28. }
  29.  
  30.  
  31. Groot::create(function ($self) {
  32. echo $self->name, PHP_EOL;
  33. });
Success #stdin #stdout 0s 82880KB
stdin
Standard input is empty
stdout
I'm groot!