Commit 6ee03f89c34 for php.net

commit 6ee03f89c3417bb53dc8a9de23744c6201f35548
Author: NickSdot <32384907+NickSdot@users.noreply.github.com>
Date:   Sat Aug 22 20:08:25 2026 +0700

    ext/xmlreader: applied fixers to improve test robustness (#23035)

diff --git a/ext/xmlreader/tests/001.phpt b/ext/xmlreader/tests/001.phpt
index ab84cd0b3a2..50e3aa97f37 100644
--- a/ext/xmlreader/tests/001.phpt
+++ b/ext/xmlreader/tests/001.phpt
@@ -20,12 +20,12 @@

 try {
     $reader->XML($xmlstring);
-} catch (ValueError $exception) {
-    echo $exception->getMessage() . "\n";
+} catch (Throwable $exception) {
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }

 ?>
 --EXPECT--
 books
 books
-XMLReader::XML(): Argument #1 ($source) must not be empty
+ValueError: XMLReader::XML(): Argument #1 ($source) must not be empty
diff --git a/ext/xmlreader/tests/002.phpt b/ext/xmlreader/tests/002.phpt
index a0f55a2af3b..5ee80945ddd 100644
--- a/ext/xmlreader/tests/002.phpt
+++ b/ext/xmlreader/tests/002.phpt
@@ -12,8 +12,8 @@
 $reader = new XMLReader();
 try {
     $reader->open('');
-} catch (ValueError $exception) {
-    echo $exception->getMessage() . "\n";
+} catch (Throwable $exception) {
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }

 $reader = new XMLReader();
@@ -36,6 +36,6 @@

 ?>
 --EXPECT--
-XMLReader::open(): Argument #1 ($uri) must not be empty
+ValueError: XMLReader::open(): Argument #1 ($uri) must not be empty
 books
 books
diff --git a/ext/xmlreader/tests/003-get-errors.phpt b/ext/xmlreader/tests/003-get-errors.phpt
index 6cb2f20b8d5..9e5b1c32c7d 100644
--- a/ext/xmlreader/tests/003-get-errors.phpt
+++ b/ext/xmlreader/tests/003-get-errors.phpt
@@ -33,8 +33,8 @@
             // Test for call with an empty string argument
             try {
                 $reader->getAttribute('');
-            } catch (ValueError $exception) {
-                echo $exception->getMessage() . "\n";
+            } catch (Throwable $exception) {
+                echo $exception::class, ': ', $exception->getMessage(), "\n";
             }

             // Ensure that node pointer has not changed position
@@ -69,7 +69,7 @@
 book
 bool(true)
 num: 1
-XMLReader::getAttribute(): Argument #1 ($name) must not be empty
+ValueError: XMLReader::getAttribute(): Argument #1 ($name) must not be empty
 num: 1
 NULL
 num: 1
diff --git a/ext/xmlreader/tests/003-move-errors.phpt b/ext/xmlreader/tests/003-move-errors.phpt
index be36d252c45..a9ef7ed6701 100644
--- a/ext/xmlreader/tests/003-move-errors.phpt
+++ b/ext/xmlreader/tests/003-move-errors.phpt
@@ -33,8 +33,8 @@
             // Test for call with an empty string argument
             try {
                 $reader->moveToAttribute('');
-            } catch (ValueError $exception) {
-                echo $exception->getMessage() . "\n";
+            } catch (Throwable $exception) {
+                echo $exception::class, ': ', $exception->getMessage(), "\n";
             }

             // Ensure that node pointer has not changed position
@@ -68,7 +68,7 @@
 book
 bool(true)
 num: 1
-XMLReader::moveToAttribute(): Argument #1 ($name) must not be empty
+ValueError: XMLReader::moveToAttribute(): Argument #1 ($name) must not be empty
 num: 1
 bool(false)
 num: 1
diff --git a/ext/xmlreader/tests/003.phpt b/ext/xmlreader/tests/003.phpt
index a581d0dea02..1ad4c088dd8 100644
--- a/ext/xmlreader/tests/003.phpt
+++ b/ext/xmlreader/tests/003.phpt
@@ -70,8 +70,8 @@
             var_dump($reader->moveToAttribute('missing-attribute'));
             try {
                 $reader->moveToAttribute('');
-            } catch (ValueError $exception) {
-                echo $exception->getMessage() . "\n";
+            } catch (Throwable $exception) {
+                echo $exception::class, ': ', $exception->getMessage(), "\n";
             }
         }
     }
@@ -88,4 +88,4 @@
 idx: 2
 bool(false)
 bool(false)
-XMLReader::moveToAttribute(): Argument #1 ($name) must not be empty
+ValueError: XMLReader::moveToAttribute(): Argument #1 ($name) must not be empty
diff --git a/ext/xmlreader/tests/007.phpt b/ext/xmlreader/tests/007.phpt
index e9705cc5af6..1cc339e0972 100644
--- a/ext/xmlreader/tests/007.phpt
+++ b/ext/xmlreader/tests/007.phpt
@@ -44,8 +44,8 @@

 try {
     $reader->setRelaxNGSchema('');
-} catch (ValueError $exception) {
-    echo $exception->getMessage() . "\n";
+} catch (Throwable $exception) {
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }

 $reader->close();
@@ -53,4 +53,4 @@
 --EXPECT--
 file relaxNG: ok
 string relaxNG: ok
-XMLReader::setRelaxNGSchema(): Argument #1 ($filename) must not be empty
+ValueError: XMLReader::setRelaxNGSchema(): Argument #1 ($filename) must not be empty
diff --git a/ext/xmlreader/tests/014.phpt b/ext/xmlreader/tests/014.phpt
index 26886ae26e6..b28e418ffe7 100644
--- a/ext/xmlreader/tests/014.phpt
+++ b/ext/xmlreader/tests/014.phpt
@@ -26,21 +26,21 @@
             // Try to set the value of the element from book1 to movie1
             try {
                 $reader->value = 'movie1';
-            } catch (Error $exception) {
-                echo $exception->getMessage() . "\n";
+            } catch (Throwable $exception) {
+                echo $exception::class, ': ', $exception->getMessage(), "\n";
             }
             // Try to set the value of the first "num" attribute from "1" to "num attribute 1"
             $attr = $reader->moveToFirstAttribute();
             try {
                 $reader->value = 'num attribute 1';
-            } catch (Error $exception) {
-                echo $exception->getMessage() . "\n";
+            } catch (Throwable $exception) {
+                echo $exception::class, ': ', $exception->getMessage(), "\n";
             }
             // Try to set the name of the first attribute from "num" to "number"
             try {
                 $reader->name = 'number';
-            } catch (Error $exception) {
-                echo $exception->getMessage() . "\n";
+            } catch (Throwable $exception) {
+                echo $exception::class, ': ', $exception->getMessage(), "\n";
             }
         }
     }
@@ -54,6 +54,6 @@
 unlink(__DIR__.'/_014.xml');
 ?>
 --EXPECT--
-Cannot modify readonly property XMLReader::$value
-Cannot modify readonly property XMLReader::$value
-Cannot modify readonly property XMLReader::$name
+Error: Cannot modify readonly property XMLReader::$value
+Error: Cannot modify readonly property XMLReader::$value
+Error: Cannot modify readonly property XMLReader::$name
diff --git a/ext/xmlreader/tests/015-get-errors.phpt b/ext/xmlreader/tests/015-get-errors.phpt
index 3cf6134df20..720503909fc 100644
--- a/ext/xmlreader/tests/015-get-errors.phpt
+++ b/ext/xmlreader/tests/015-get-errors.phpt
@@ -28,8 +28,8 @@
             // Test for missing namespace argument
             try {
                 $attr = $reader->getAttributeNs('idx', null);
-            } catch (ValueError $exception) {
-                echo $exception->getMessage() . "\n";
+            } catch (Throwable $exception) {
+                echo $exception::class, ': ', $exception->getMessage(), "\n";
             }

             echo $reader->name . ": ";
@@ -47,5 +47,5 @@
 ?>
 --EXPECTF--
 Deprecated: XMLReader::getAttributeNs(): Passing null to parameter #2 ($namespace) of type string is deprecated in %s on line %d
-XMLReader::getAttributeNs(): Argument #2 ($namespace) must not be empty
+ValueError: XMLReader::getAttributeNs(): Argument #2 ($namespace) must not be empty
 ns1:num: 1
diff --git a/ext/xmlreader/tests/015-move-errors.phpt b/ext/xmlreader/tests/015-move-errors.phpt
index d885c5a6fe9..06bb9c2f086 100644
--- a/ext/xmlreader/tests/015-move-errors.phpt
+++ b/ext/xmlreader/tests/015-move-errors.phpt
@@ -26,8 +26,8 @@
             // Test for missing namespace argument
             try {
                 $reader->moveToAttributeNs('idx', null);
-            } catch (ValueError $exception) {
-                echo $exception->getMessage() . "\n";
+            } catch (Throwable $exception) {
+                echo $exception::class, ': ', $exception->getMessage(), "\n";
             }
         }
     }
@@ -42,4 +42,4 @@
 ?>
 --EXPECTF--
 Deprecated: XMLReader::moveToAttributeNs(): Passing null to parameter #2 ($namespace) of type string is deprecated in %s on line %d
-XMLReader::moveToAttributeNs(): Argument #2 ($namespace) must not be empty
+ValueError: XMLReader::moveToAttributeNs(): Argument #2 ($namespace) must not be empty
diff --git a/ext/xmlreader/tests/bug73246.phpt b/ext/xmlreader/tests/bug73246.phpt
index f20c1604538..95ba538506a 100644
--- a/ext/xmlreader/tests/bug73246.phpt
+++ b/ext/xmlreader/tests/bug73246.phpt
@@ -7,21 +7,21 @@
 $reader = new XMLReader();
 try {
     $reader->open(__FILE__, "UTF\0-8");
-} catch (ValueError $e) {
-    echo $e->getMessage(), "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 try {
     $reader->XML('<?xml version="1.0"?><root/>', "UTF\0-8");
-} catch (ValueError $e) {
-    echo $e->getMessage(), "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 try {
     XMLReader::fromStream(fopen('php://memory', 'r'), encoding: "UTF\0-8");
-} catch (ValueError $e) {
-    echo $e->getMessage(), "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 ?>
 --EXPECT--
-XMLReader::open(): Argument #2 ($encoding) must not contain any null bytes
-XMLReader::XML(): Argument #2 ($encoding) must not contain any null bytes
-XMLReader::fromStream(): Argument #2 ($encoding) must not contain any null bytes
+ValueError: XMLReader::open(): Argument #2 ($encoding) must not contain any null bytes
+ValueError: XMLReader::XML(): Argument #2 ($encoding) must not contain any null bytes
+ValueError: XMLReader::fromStream(): Argument #2 ($encoding) must not contain any null bytes
diff --git a/ext/xmlreader/tests/bug81521.phpt b/ext/xmlreader/tests/bug81521.phpt
index 2789a16e21b..d1547e8d2d2 100644
--- a/ext/xmlreader/tests/bug81521.phpt
+++ b/ext/xmlreader/tests/bug81521.phpt
@@ -7,15 +7,15 @@
 $reader = new XMLReader();
 try {
     var_dump($reader->setParserProperty(XMLReader::LOADDTD, 1));
-} catch (Error $e) {
-    echo $e->getMessage(), "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 try {
     var_dump($reader->getParserProperty(XMLReader::LOADDTD));
-} catch (Error $e) {
-    echo $e->getMessage(), "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 ?>
 --EXPECT--
-Cannot access parser properties before loading data
-Cannot access parser properties before loading data
+Error: Cannot access parser properties before loading data
+Error: Cannot access parser properties before loading data
diff --git a/ext/xmlreader/tests/expand_error.phpt b/ext/xmlreader/tests/expand_error.phpt
index 1eba483733a..210ee30356a 100644
--- a/ext/xmlreader/tests/expand_error.phpt
+++ b/ext/xmlreader/tests/expand_error.phpt
@@ -17,8 +17,8 @@

 try {
     $reader->expand();
-} catch (Error $exception) {
-    echo $exception->getMessage() . "\n";
+} catch (Throwable $exception) {
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }

 $reader->close();
@@ -29,7 +29,7 @@
 $reader->close();
 ?>
 --EXPECTF--
-Data must be loaded before expanding
+Error: Data must be loaded before expanding

 Warning: XMLReader::expand(): An Error Occurred while expanding in %s on line %d
 bool(false)
diff --git a/ext/xmlreader/tests/fromStream_custom_constructor.phpt b/ext/xmlreader/tests/fromStream_custom_constructor.phpt
index 3ec370274ad..2519c6b3349 100644
--- a/ext/xmlreader/tests/fromStream_custom_constructor.phpt
+++ b/ext/xmlreader/tests/fromStream_custom_constructor.phpt
@@ -20,8 +20,8 @@ public function __construct() {
 $reader = CustomXMLReader::fromStream($h, encoding: "UTF-8");
 try {
     var_dump($reader);
-} catch (Error $e) {
-    echo $e->getMessage(), "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 var_dump($reader->read());
 var_dump($reader->nodeType);
@@ -60,6 +60,6 @@ public function __construct() {
   ["xmlLang"]=>
   string(0) ""
 }
-Failed to read property because no XML data has been read yet
+Error: Failed to read property because no XML data has been read yet
 bool(true)
 int(1)
diff --git a/ext/xmlreader/tests/fromStream_custom_constructor_error.phpt b/ext/xmlreader/tests/fromStream_custom_constructor_error.phpt
index 60e65fa9211..e5d04efaaee 100644
--- a/ext/xmlreader/tests/fromStream_custom_constructor_error.phpt
+++ b/ext/xmlreader/tests/fromStream_custom_constructor_error.phpt
@@ -17,10 +17,10 @@ public function __construct() {
 try {
     CustomXMLReader::fromStream($h, encoding: "UTF-8");
 } catch (Throwable $e) {
-    echo $e->getMessage(), "\n";
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }

 fclose($h);
 ?>
 --EXPECT--
-nope
+Error: nope
diff --git a/ext/xmlreader/tests/fromString_custom_constructor.phpt b/ext/xmlreader/tests/fromString_custom_constructor.phpt
index 4299544613d..9eddbb3061e 100644
--- a/ext/xmlreader/tests/fromString_custom_constructor.phpt
+++ b/ext/xmlreader/tests/fromString_custom_constructor.phpt
@@ -16,8 +16,8 @@ public function __construct() {
 $reader = CustomXMLReader::fromString("<root/>");
 try {
     var_dump($reader);
-} catch (Error $e) {
-    echo $e->getMessage(), "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 var_dump($reader->read());
 var_dump($reader->nodeType);
@@ -54,6 +54,6 @@ public function __construct() {
   ["xmlLang"]=>
   string(0) ""
 }
-Failed to read property because no XML data has been read yet
+Error: Failed to read property because no XML data has been read yet
 bool(true)
 int(1)
diff --git a/ext/xmlreader/tests/fromString_custom_constructor_error.phpt b/ext/xmlreader/tests/fromString_custom_constructor_error.phpt
index 9bcffddba70..0db74a84373 100644
--- a/ext/xmlreader/tests/fromString_custom_constructor_error.phpt
+++ b/ext/xmlreader/tests/fromString_custom_constructor_error.phpt
@@ -13,8 +13,8 @@ public function __construct() {
 try {
     CustomXMLReader::fromString("<root/>");
 } catch (Throwable $e) {
-    echo $e->getMessage(), "\n";
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 ?>
 --EXPECT--
-nope
+Error: nope
diff --git a/ext/xmlreader/tests/fromUri_custom_constructor_error.phpt b/ext/xmlreader/tests/fromUri_custom_constructor_error.phpt
index ad36c1e0c22..9aa7ffa02d9 100644
--- a/ext/xmlreader/tests/fromUri_custom_constructor_error.phpt
+++ b/ext/xmlreader/tests/fromUri_custom_constructor_error.phpt
@@ -13,7 +13,7 @@ public function __construct() {
 try {
     CustomXMLReader::fromUri("nonexistent");
 } catch (Throwable $e) {
-    echo $e->getMessage(), "\n";
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }

 $filename = __DIR__ . '/_fromUri_custom_constructor_error.xml';
@@ -24,12 +24,12 @@ public function __construct() {
 try {
     CustomXMLReader::fromUri($filename);
 } catch (Throwable $e) {
-    echo $e->getMessage(), "\n";
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 ?>
 --EXPECT--
-Unable to open source data
-nope
+Error: Unable to open source data
+Error: nope
 --CLEAN--
 <?php
 @unlink(__DIR__ . '/_fromUri_custom_constructor_error.xml');
diff --git a/ext/xmlreader/tests/invalid_encoding.phpt b/ext/xmlreader/tests/invalid_encoding.phpt
index c3918855199..62b681f1007 100644
--- a/ext/xmlreader/tests/invalid_encoding.phpt
+++ b/ext/xmlreader/tests/invalid_encoding.phpt
@@ -7,25 +7,25 @@
 $reader = new XMLReader();
 try {
     $reader->open(__FILE__, "does not exist");
-} catch (ValueError $e) {
-    echo $e->getMessage(), "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }

 $h = fopen("php://memory", "w+");
 try {
     XMLReader::fromStream($h, encoding: "does not exist");
-} catch (ValueError $e) {
-    echo $e->getMessage(), "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 fclose($h);

 try {
     $reader->XML('<?xml version="1.0"?><root/>', "does not exist");
-} catch (ValueError $e) {
-    echo $e->getMessage(), "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 ?>
 --EXPECT--
-XMLReader::open(): Argument #2 ($encoding) must be a valid character encoding
-XMLReader::fromStream(): Argument #2 ($encoding) must be a valid character encoding
-XMLReader::XML(): Argument #2 ($encoding) must be a valid character encoding
+ValueError: XMLReader::open(): Argument #2 ($encoding) must be a valid character encoding
+ValueError: XMLReader::fromStream(): Argument #2 ($encoding) must be a valid character encoding
+ValueError: XMLReader::XML(): Argument #2 ($encoding) must be a valid character encoding
diff --git a/ext/xmlreader/tests/next_basic.phpt b/ext/xmlreader/tests/next_basic.phpt
index 0cf907bcd4e..891acc9c4fe 100644
--- a/ext/xmlreader/tests/next_basic.phpt
+++ b/ext/xmlreader/tests/next_basic.phpt
@@ -12,14 +12,14 @@

 try {
     $reader->read();
-} catch (Error $exception) {
-    echo $exception->getMessage() . "\n";
+} catch (Throwable $exception) {
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }

 try {
     $reader->next();
-} catch (Error $exception) {
-    echo $exception->getMessage() . "\n";
+} catch (Throwable $exception) {
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }

 $reader->close();
@@ -40,8 +40,8 @@

 ?>
 --EXPECT--
-Data must be loaded before reading
-Data must be loaded before reading
+Error: Data must be loaded before reading
+Error: Data must be loaded before reading
 node1
 bool(true)
 node3
diff --git a/ext/xmlreader/tests/setParserProperty_error.phpt b/ext/xmlreader/tests/setParserProperty_error.phpt
index 292745751e7..44e26223a44 100644
--- a/ext/xmlreader/tests/setParserProperty_error.phpt
+++ b/ext/xmlreader/tests/setParserProperty_error.phpt
@@ -12,10 +12,10 @@
 $reader->XML($xml);
 try {
     $reader->setParserProperty(-1, true);
-} catch (ValueError $exception) {
-    echo $exception->getMessage() . "\n";
+} catch (Throwable $exception) {
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }
 $reader->close();
 ?>
 --EXPECT--
-XMLReader::setParserProperty(): Argument #1 ($property) must be a valid parser property
+ValueError: XMLReader::setParserProperty(): Argument #1 ($property) must be a valid parser property
diff --git a/ext/xmlreader/tests/setSchema_error.phpt b/ext/xmlreader/tests/setSchema_error.phpt
index a586c38f553..10a1f301530 100644
--- a/ext/xmlreader/tests/setSchema_error.phpt
+++ b/ext/xmlreader/tests/setSchema_error.phpt
@@ -8,24 +8,24 @@
 $reader = new XMLReader();
 try {
     $reader->setSchema('');
-} catch (ValueError $exception) {
-    echo $exception->getMessage() . "\n";
+} catch (Throwable $exception) {
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }
 $reader->close();

 $reader = new XMLReader();
 try {
     $reader->setSchema('schema-missing-file.xsd');
-} catch (Error $exception) {
-    echo $exception->getMessage() . "\n";
+} catch (Throwable $exception) {
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }
 $reader->close();

 $reader = new XMLReader();
 try {
     $reader->setSchema('schema-empty.xsd');
-} catch (Error $exception) {
-    echo $exception->getMessage() . "\n";
+} catch (Throwable $exception) {
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }

 $reader = new XMLReader();
@@ -37,7 +37,7 @@
 $reader->close();
 ?>
 --EXPECT--
-XMLReader::setSchema(): Argument #1 ($filename) must not be empty
-Schema must be set prior to reading
-Schema must be set prior to reading
+ValueError: XMLReader::setSchema(): Argument #1 ($filename) must not be empty
+Error: Schema must be set prior to reading
+Error: Schema must be set prior to reading
 bool(false)
diff --git a/ext/xmlreader/tests/virtual_properties3.phpt b/ext/xmlreader/tests/virtual_properties3.phpt
index ad016c4db76..c4f6ce226eb 100644
--- a/ext/xmlreader/tests/virtual_properties3.phpt
+++ b/ext/xmlreader/tests/virtual_properties3.phpt
@@ -14,32 +14,32 @@ class MyXMLReader extends XMLReader

 try {
     unset($reader->attributeCount);
-} catch (Error $e) {
-    echo $e->getMessage() . "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }

 try {
     unset($reader->baseURI);
-} catch (Error $e) {
-    echo $e->getMessage() . "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }

 try {
     unset($reader->depth);
-} catch (Error $e) {
-    echo $e->getMessage() . "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }

 try {
     unset($reader->hasAttributes);
-} catch (Error $e) {
-    echo $e->getMessage() . "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }

 try {
     unset($reader->hasValue);
-} catch (Error $e) {
-    echo $e->getMessage() . "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }

 unset($reader->x);
@@ -47,9 +47,9 @@ class MyXMLReader extends XMLReader

 ?>
 --EXPECT--
-Cannot unset MyXMLReader::$attributeCount
-Cannot unset MyXMLReader::$baseURI
-Cannot unset MyXMLReader::$depth
-Cannot unset MyXMLReader::$hasAttributes
-Cannot unset MyXMLReader::$hasValue
+Error: Cannot unset MyXMLReader::$attributeCount
+Error: Cannot unset MyXMLReader::$baseURI
+Error: Cannot unset MyXMLReader::$depth
+Error: Cannot unset MyXMLReader::$hasAttributes
+Error: Cannot unset MyXMLReader::$hasValue
 bool(false)