]> granicus.if.org Git - php/commitdiff
add test for non mixed batch use statements... #1005
authorMárcio Almada <marcio3w@gmail.com>
Thu, 29 Jan 2015 04:38:16 +0000 (01:38 -0300)
committerMárcio Almada <marcio3w@gmail.com>
Sat, 7 Mar 2015 20:59:48 +0000 (17:59 -0300)
```
use function foo\math {sin, cos, sum};
use const foo\math { PI, E, GAMMA, GOLDEN_RATIO }
```

Zend/tests/ns_092.phpt [new file with mode: 0644]

diff --git a/Zend/tests/ns_092.phpt b/Zend/tests/ns_092.phpt
new file mode 100644 (file)
index 0000000..1ac6a39
--- /dev/null
@@ -0,0 +1,67 @@
+--TEST--
+Typed batch 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: Call to undefined function Foo\Bar\A() in /home/marcio/P/php-src/Zend/tests/ns_092.php on line 45