Browse Source
Added support for "namespace::" prefix that is resolved to current namespace name.
experimental/phar_tar
Added support for "namespace::" prefix that is resolved to current namespace name.
experimental/phar_tar
7 changed files with 151 additions and 6 deletions
-
2Zend/tests/lsb_006.phpt
-
2Zend/tests/lsb_007.phpt
-
56Zend/tests/ns_057.phpt
-
54Zend/tests/ns_058.phpt
-
35Zend/zend_compile.c
-
2Zend/zend_compile.h
-
6Zend/zend_language_parser.y
@ -0,0 +1,56 @@ |
|||
--TEST-- |
|||
057: Usage of 'namespace' in compound names (inside namespase) |
|||
--FILE-- |
|||
<?php |
|||
namespace test::ns1; |
|||
|
|||
const C = "const ok\n"; |
|||
|
|||
function foo() { |
|||
return "func ok\n"; |
|||
} |
|||
|
|||
class foo { |
|||
const C = "const ok\n"; |
|||
const C2 = namespace::C; |
|||
static $var = "var ok\n"; |
|||
function __construct() { |
|||
echo "class ok\n"; |
|||
} |
|||
static function bar() { |
|||
return "method ok\n"; |
|||
} |
|||
} |
|||
|
|||
function f1($x=namespace::C) { |
|||
return $x; |
|||
} |
|||
function f2($x=namespace::foo::C) { |
|||
return $x; |
|||
} |
|||
|
|||
function f3(namespace::foo $x) { |
|||
return "ok\n"; |
|||
} |
|||
|
|||
echo namespace::C; |
|||
echo namespace::foo(); |
|||
echo namespace::foo::C; |
|||
echo namespace::foo::C2; |
|||
echo namespace::foo::$var; |
|||
echo namespace::foo::bar(); |
|||
echo namespace::f1(); |
|||
echo namespace::f2(); |
|||
echo namespace::f3(new namespace::foo()); |
|||
?> |
|||
--EXPECTF-- |
|||
const ok |
|||
func ok |
|||
const ok |
|||
const ok |
|||
var ok |
|||
method ok |
|||
const ok |
|||
const ok |
|||
class ok |
|||
ok |
|||
@ -0,0 +1,54 @@ |
|||
--TEST-- |
|||
058: Usage of 'namespace' in compound names (out of namespase) |
|||
--FILE-- |
|||
<?php |
|||
const C = "const ok\n"; |
|||
|
|||
function foo() { |
|||
return "func ok\n"; |
|||
} |
|||
|
|||
class foo { |
|||
const C = "const ok\n"; |
|||
const C2 = namespace::C; |
|||
static $var = "var ok\n"; |
|||
function __construct() { |
|||
echo "class ok\n"; |
|||
} |
|||
static function bar() { |
|||
return "method ok\n"; |
|||
} |
|||
} |
|||
|
|||
function f1($x=namespace::C) { |
|||
return $x; |
|||
} |
|||
function f2($x=namespace::foo::C) { |
|||
return $x; |
|||
} |
|||
|
|||
function f3(namespace::foo $x) { |
|||
return "ok\n"; |
|||
} |
|||
|
|||
echo namespace::C; |
|||
echo namespace::foo(); |
|||
echo namespace::foo::C; |
|||
echo namespace::foo::C2; |
|||
echo namespace::foo::$var; |
|||
echo namespace::foo::bar(); |
|||
echo namespace::f1(); |
|||
echo namespace::f2(); |
|||
echo namespace::f3(new namespace::foo()); |
|||
?> |
|||
--EXPECT-- |
|||
const ok |
|||
func ok |
|||
const ok |
|||
const ok |
|||
var ok |
|||
method ok |
|||
const ok |
|||
const ok |
|||
class ok |
|||
ok |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue