ns_092.phpt 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. --TEST--
  2. Typed group use statements
  3. --FILE--
  4. <?php
  5. namespace Foo\Bar {
  6. class A { function __construct() {echo __METHOD__,"\n";} }
  7. class B { function __construct() {echo __METHOD__,"\n";} }
  8. function fiz(){ echo __FUNCTION__,"\n"; }
  9. function biz(){ echo __FUNCTION__,"\n"; }
  10. function buz(){ echo __FUNCTION__,"\n"; }
  11. const FOO = 1;
  12. const BAR = 2;
  13. }
  14. namespace Fiz\Biz\Buz {
  15. use function Foo\Bar\{
  16. fiz,
  17. biz,
  18. buz as boz,
  19. A // <- this one must fail
  20. };
  21. use const Foo\Bar\{
  22. FOO as FOZ,
  23. BAR,
  24. B // <- this one must fail
  25. };
  26. use Foo\Bar\{ A, B, const BAR as BOZ };
  27. function buz(){ echo __FUNCTION__,"\n"; }
  28. const FOO = 100;
  29. echo "==== MIXED ====\n";
  30. new A();
  31. new B();
  32. var_dump(BOZ);
  33. echo "===== CONSTANTS ====\n";
  34. var_dump(FOO);
  35. var_dump(FOZ);
  36. var_dump(BAR);
  37. var_dump(defined('B'));
  38. echo "===== FUNCTIONS ====\n";
  39. buz();
  40. fiz();
  41. biz();
  42. boz();
  43. A();
  44. }
  45. ?>
  46. --EXPECTF--
  47. ==== MIXED ====
  48. Foo\Bar\A::__construct
  49. Foo\Bar\B::__construct
  50. int(2)
  51. ===== CONSTANTS ====
  52. int(100)
  53. int(1)
  54. int(2)
  55. bool(false)
  56. ===== FUNCTIONS ====
  57. Fiz\Biz\Buz\buz
  58. Foo\Bar\fiz
  59. Foo\Bar\biz
  60. Foo\Bar\buz
  61. Fatal error: Uncaught Error: Call to undefined function Foo\Bar\A() in %sns_092.php:45
  62. Stack trace:
  63. #0 {main}
  64. thrown in %sns_092.php on line 45