Improve use syntax

[DOC] use \foo\bar is the same as use foo\bar
This commit is contained in:
Stanislav Malyshev 2008-11-17 18:00:44 +00:00
parent 0fab3f5b68
commit 4cb8b8ba40
2 changed files with 35 additions and 2 deletions

33
Zend/tests/ns_078.phpt Executable file
View File

@ -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

View 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: