mirror of
https://github.com/php/php-src.git
synced 2024-12-15 12:54:57 +08:00
7aacc705d0
Closes GH-5958
71 lines
1.3 KiB
PHP
71 lines
1.3 KiB
PHP
--TEST--
|
|
Typed group use statements
|
|
--FILE--
|
|
<?php
|
|
namespace Foo\Bar {
|
|
class A { function __construct() {echo __METHOD__,"\n";} }
|
|
class B { function __construct() {echo __METHOD__,"\n";} }
|
|
function fiz(){ echo __FUNCTION__,"\n"; }
|
|
function biz(){ echo __FUNCTION__,"\n"; }
|
|
function buz(){ echo __FUNCTION__,"\n"; }
|
|
const FOO = 1;
|
|
const BAR = 2;
|
|
}
|
|
namespace Fiz\Biz\Buz {
|
|
|
|
use function Foo\Bar\{
|
|
fiz,
|
|
biz,
|
|
buz as boz,
|
|
A // <- this one must fail
|
|
};
|
|
|
|
use const Foo\Bar\{
|
|
FOO as FOZ,
|
|
BAR,
|
|
B // <- this one must fail
|
|
};
|
|
|
|
use Foo\Bar\{ A, B, const BAR as BOZ };
|
|
|
|
function buz(){ echo __FUNCTION__,"\n"; }
|
|
const FOO = 100;
|
|
|
|
echo "==== MIXED ====\n";
|
|
new A();
|
|
new B();
|
|
var_dump(BOZ);
|
|
echo "===== CONSTANTS ====\n";
|
|
var_dump(FOO);
|
|
var_dump(FOZ);
|
|
var_dump(BAR);
|
|
var_dump(defined('B'));
|
|
echo "===== FUNCTIONS ====\n";
|
|
buz();
|
|
fiz();
|
|
biz();
|
|
boz();
|
|
A();
|
|
}
|
|
?>
|
|
--EXPECTF--
|
|
==== MIXED ====
|
|
Foo\Bar\A::__construct
|
|
Foo\Bar\B::__construct
|
|
int(2)
|
|
===== CONSTANTS ====
|
|
int(100)
|
|
int(1)
|
|
int(2)
|
|
bool(false)
|
|
===== FUNCTIONS ====
|
|
Fiz\Biz\Buz\buz
|
|
Foo\Bar\fiz
|
|
Foo\Bar\biz
|
|
Foo\Bar\buz
|
|
|
|
Fatal error: Uncaught Error: Call to undefined function Foo\Bar\A() in %sns_092.php:45
|
|
Stack trace:
|
|
#0 {main}
|
|
thrown in %sns_092.php on line 45
|