newVariable.phpt 741 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. --TEST--
  2. Variable as class name for new expression
  3. --FILE--
  4. <?php
  5. $className = 'stdClass';
  6. $array = ['className' => 'stdClass'];
  7. $obj = (object) ['className' => 'stdClass'];
  8. class Test {
  9. public static $className = 'stdClass';
  10. }
  11. $test = 'Test';
  12. $weird = [0 => (object) ['foo' => 'Test']];
  13. var_dump(new $className);
  14. var_dump(new $array['className']);
  15. var_dump(new $array{'className'});
  16. var_dump(new $obj->className);
  17. var_dump(new Test::$className);
  18. var_dump(new $test::$className);
  19. var_dump(new $weird[0]->foo::$className);
  20. ?>
  21. --EXPECTF--
  22. object(stdClass)#%d (0) {
  23. }
  24. object(stdClass)#%d (0) {
  25. }
  26. object(stdClass)#%d (0) {
  27. }
  28. object(stdClass)#%d (0) {
  29. }
  30. object(stdClass)#%d (0) {
  31. }
  32. object(stdClass)#%d (0) {
  33. }
  34. object(stdClass)#%d (0) {
  35. }