php-src/Zend/tests/unset/unset_prop_recursion.phpt
DanielEScherzer 275f63e7fd
Zend/tests: organize some tests with subdirectories (2) (#16423)
Move more low-hanging fruit, creating new directories for the tests for:

* comparisons
* dynamic calls
* error messages
* `error_reporting()`
* exceptions
* `foreach()`
* garbage collection
* group `use` statements
* heredoc and nowdoc
* `goto` jumps
* late static binding
* magic methods
* namespaces
* numeric literal separators
* objects
* `settype()`
* cleaning of temporary values
* `unset()`

Additionally, move some tests into the existing subdirectory for `list()`
tests.

Drive-by fixes of some test numbers in the names of the `goto` tests.

Work towards GH-15631
2024-10-14 12:14:42 +01:00

65 lines
1,007 B
PHP

--TEST--
Unset property where unset will recursively access property again
--FILE--
<?php
class Node {
public $parent = null;
public $children = [];
function insert(Node $node) {
$node->parent = $this;
$this->children[] = $node;
}
function __destruct() {
var_dump($this);
unset($this->children);
}
}
$a = new Node;
$a->insert(new Node);
$a->insert(new Node);
?>
--EXPECT--
object(Node)#1 (2) {
["parent"]=>
NULL
["children"]=>
array(2) {
[0]=>
object(Node)#2 (2) {
["parent"]=>
*RECURSION*
["children"]=>
array(0) {
}
}
[1]=>
object(Node)#3 (2) {
["parent"]=>
*RECURSION*
["children"]=>
array(0) {
}
}
}
}
object(Node)#2 (2) {
["parent"]=>
object(Node)#1 (2) {
["parent"]=>
NULL
}
["children"]=>
array(0) {
}
}
object(Node)#3 (2) {
["parent"]=>
object(Node)#1 (2) {
["parent"]=>
NULL
}
["children"]=>
array(0) {
}
}