@@ -30,7 +30,7 @@ class MyMysqli extends mysqli {}
3030class YourMysqli extends \mysqli {}
3131
3232class OurMysqli implements mysqli {}
33- class TheirMysqli implements \mysqli {}
33+ class TheirMysqli implements \MYSQLI {}
3434
3535$ db5 = new PDO ();
3636$ db6 = ( new PDO () )->exec ();
@@ -115,3 +115,24 @@ $anon = new readonly class {
115115$ anon = new readonly class () extends PDOStatement {}; // Error.
116116
117117$ anon = new #[MyAttribute] readonly class {};
118+
119+ /*
120+ * Safeguard correct handling of namespaced class references (the namespace types not handled below are already handled
121+ * in other tests above).
122+ */
123+ $ obj = new MyNamespace \PDO ();
124+ $ obj = new \MyNamespace \PDOStatement ();
125+ $ obj = new namespace \Sub \mysqli ();
126+ $ obj = new namespace \PDO (); // Error.
127+ class MyClass1 extends MyNamespace \mysqli {}
128+ class MyClass2 extends \MyNamespace \PDO {}
129+ class MyClass3 extends namespace \Sub \PDOStatement {}
130+ class MyClass4 extends namespace \mysqli {} // Error.
131+ class MyClass5 implements MyNamespace \mysqli {}
132+ class MyClass6 implements \MyNamespace \PDO {}
133+ class MyClass7 implements namespace \Sub \PDOStatement {}
134+ class MyClass8 implements namespace \mysqli {} // Error.
135+ MyNamespace \mysqli::do_something ();
136+ \MyNamespace \PDO ::do_something ();
137+ namespace \Sub \PDOStatement ::do_something();
138+ namespace \MYSQLI ::do_something (); // Error.
0 commit comments