]> granicus.if.org Git - php/commitdiff
Improve use syntax
authorStanislav Malyshev <stas@php.net>
Mon, 17 Nov 2008 18:00:44 +0000 (18:00 +0000)
committerStanislav Malyshev <stas@php.net>
Mon, 17 Nov 2008 18:00:44 +0000 (18:00 +0000)
[DOC] use \foo\bar is the same as use foo\bar

Zend/tests/ns_078.phpt [new file with mode: 0755]
Zend/zend_language_parser.y

diff --git a/Zend/tests/ns_078.phpt b/Zend/tests/ns_078.phpt
new file mode 100755 (executable)
index 0000000..ed6770f
--- /dev/null
@@ -0,0 +1,33 @@
+--TEST--
+002: Import - different syntaxes
+--FILE--
+<?php
+namespace test\ns1;
+
+class Foo {
+  static function bar() {
+    echo __CLASS__,"\n";
+  }
+}
+
+class Foo2 {
+  static function bar() {
+    echo __CLASS__,"\n";
+  }
+}
+
+namespace xyz;
+use test\ns1\Foo;
+use test\ns1\Foo as Bar;
+use \test\ns1\Foo2;
+use \test\ns1\Foo2 as Bar2;
+
+Foo::bar();
+Bar::bar();
+Foo2::bar();
+Bar2::bar();
+--EXPECT--
+test\ns1\Foo
+test\ns1\Foo
+test\ns1\Foo2
+test\ns1\Foo2
index 33d20130a9235cb9c2cfdaba089004abd1b8fad3..e613f05abc6d9d7a3a82862f35747f1afc8c4abc 100644 (file)
@@ -183,8 +183,8 @@ use_declarations:
 use_declaration:
                namespace_name                  { zend_do_use(&$1, NULL, 0 TSRMLS_CC); }
        |       namespace_name T_AS T_STRING    { zend_do_use(&$1, &$3, 0 TSRMLS_CC); }
-       |       T_NS_SEPARATOR T_STRING { zend_do_use(&$2, NULL, 1 TSRMLS_CC); }
-       |       T_NS_SEPARATOR T_STRING T_AS T_STRING { zend_do_use(&$2, &$4, 1 TSRMLS_CC); }
+       |       T_NS_SEPARATOR namespace_name { zend_do_use(&$2, NULL, 1 TSRMLS_CC); }
+       |       T_NS_SEPARATOR namespace_name T_AS T_STRING { zend_do_use(&$2, &$4, 1 TSRMLS_CC); }
 ;
 
 constant_declaration: