ns_058.phpt 1007 B

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