fork(1) download
  1. <?php
  2.  
  3. function invokeWithReference(StdClass &$class)
  4. {
  5. // Create args array using reference
  6. $args = [$class];
  7. $obj = new ReflectionClass('xyz');
  8. return $obj->newInstanceArgs($args);
  9. }
  10.  
  11. class xyz
  12. {
  13. public $class;
  14.  
  15. public function __construct(StdClass $class)
  16. {
  17. $this->class = $class;
  18. }
  19.  
  20. public function setTest2()
  21. {
  22. $this->class->test2 = 'goodbye';
  23. }
  24. }
  25.  
  26. $class = new StdClass;
  27. $instance = invokeWithReference($class);
  28.  
  29. $class->test = 'hello';
  30. $instance->setTest2();
  31.  
  32. echo $instance->class->test;
  33. echo PHP_EOL;
  34. echo $class->test2;
Success #stdin #stdout 0.01s 82880KB
stdin
Standard input is empty
stdout
hello
goodbye