mirror of
https://github.com/php/php-src.git
synced 2024-09-23 02:47:26 +00:00
22a077b642
We actually implement `::__debugInfo()` and drop the `get_debug_info()` handlers of all relevant SPL classes. This is cleaner and gives more flexibility regarding overriding the functionality in descendant classes.
113 lines
2.3 KiB
PHP
113 lines
2.3 KiB
PHP
--TEST--
|
|
Bug #69264 (__debugInfo() ignored while extending SPL classes)
|
|
--FILE--
|
|
<?php
|
|
class MyFileInfo extends SplFileInfo {
|
|
public function __debugInfo() {
|
|
return ['child' => 42, 'parent' => count(parent::__debugInfo())];
|
|
}
|
|
}
|
|
|
|
class MyDoublyLinkedList extends SplDoublyLinkedList {
|
|
public function __debugInfo() {
|
|
return ['child' => 42, 'parent' => count(parent::__debugInfo())];
|
|
}
|
|
}
|
|
|
|
class MyObjectStorage extends SplObjectStorage {
|
|
public function __debugInfo() {
|
|
return ['child' => 42, 'parent' => count(parent::__debugInfo())];
|
|
}
|
|
}
|
|
|
|
class MyMultipleIterator extends MultipleIterator {
|
|
public function __debugInfo() {
|
|
return ['child' => 42, 'parent' => count(parent::__debugInfo())];
|
|
}
|
|
}
|
|
|
|
class MyArrayObject extends ArrayObject {
|
|
public function __debugInfo() {
|
|
return ['child' => 42, 'parent' => count(parent::__debugInfo())];
|
|
}
|
|
}
|
|
|
|
class MyArrayIterator extends ArrayIterator {
|
|
public function __debugInfo() {
|
|
return ['child' => 42, 'parent' => count(parent::__debugInfo())];
|
|
}
|
|
}
|
|
|
|
class MyMaxHeap extends SplMaxHeap {
|
|
public function __debugInfo() {
|
|
return ['child' => 42, 'parent' => count(parent::__debugInfo())];
|
|
}
|
|
}
|
|
|
|
class MyPriorityQueue extends SplPriorityQueue {
|
|
public function __debugInfo() {
|
|
return ['child' => 42, 'parent' => count(parent::__debugInfo())];
|
|
}
|
|
}
|
|
|
|
var_dump(
|
|
new MyFileInfo(__FILE__),
|
|
new MyDoublyLinkedList(),
|
|
new MyObjectStorage(),
|
|
new MyMultipleIterator(),
|
|
new MyArrayObject(),
|
|
new MyArrayIterator(),
|
|
new MyMaxHeap(),
|
|
new MyPriorityQueue(),
|
|
);
|
|
?>
|
|
--EXPECTF--
|
|
object(MyFileInfo)#%d (2) {
|
|
["child"]=>
|
|
int(42)
|
|
["parent"]=>
|
|
int(2)
|
|
}
|
|
object(MyDoublyLinkedList)#%d (2) {
|
|
["child"]=>
|
|
int(42)
|
|
["parent"]=>
|
|
int(2)
|
|
}
|
|
object(MyObjectStorage)#%d (2) {
|
|
["child"]=>
|
|
int(42)
|
|
["parent"]=>
|
|
int(1)
|
|
}
|
|
object(MyMultipleIterator)#%d (2) {
|
|
["child"]=>
|
|
int(42)
|
|
["parent"]=>
|
|
int(1)
|
|
}
|
|
object(MyArrayObject)#%d (2) {
|
|
["child"]=>
|
|
int(42)
|
|
["parent"]=>
|
|
int(1)
|
|
}
|
|
object(MyArrayIterator)#%d (2) {
|
|
["child"]=>
|
|
int(42)
|
|
["parent"]=>
|
|
int(1)
|
|
}
|
|
object(MyMaxHeap)#%d (2) {
|
|
["child"]=>
|
|
int(42)
|
|
["parent"]=>
|
|
int(3)
|
|
}
|
|
object(MyPriorityQueue)#%d (2) {
|
|
["child"]=>
|
|
int(42)
|
|
["parent"]=>
|
|
int(3)
|
|
}
|