ns_057.phpt 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. --TEST--
  2. 057: Usage of 'namespace' in compound names (inside namespace)
  3. --FILE--
  4. <?php
  5. namespace Test\ns1;
  6. const C = "const ok\n";
  7. function foo() {
  8. return "func ok\n";
  9. }
  10. class foo {
  11. const C = "const ok\n";
  12. const C2 = namespace\C;
  13. static $var = "var ok\n";
  14. function __construct() {
  15. echo "class ok\n";
  16. }
  17. static function bar() {
  18. return "method ok\n";
  19. }
  20. }
  21. function f1($x=namespace\C) {
  22. return $x;
  23. }
  24. function f2($x=namespace\foo::C) {
  25. return $x;
  26. }
  27. function f3(namespace\foo $x) {
  28. return "ok\n";
  29. }
  30. echo namespace\C;
  31. echo namespace\foo();
  32. echo namespace\foo::C;
  33. echo namespace\foo::C2;
  34. echo namespace\foo::$var;
  35. echo namespace\foo::bar();
  36. echo namespace\f1();
  37. echo namespace\f2();
  38. echo namespace\f3(new namespace\foo());
  39. echo namespace\unknown;
  40. ?>
  41. --EXPECTF--
  42. const ok
  43. func ok
  44. const ok
  45. const ok
  46. var ok
  47. method ok
  48. const ok
  49. const ok
  50. class ok
  51. ok
  52. Fatal error: Uncaught Error: Undefined constant "Test\ns1\unknown" in %s:%d
  53. Stack trace:
  54. #0 {main}
  55. thrown in %sns_057.php on line %d