- gc_collect_cycles: documentation ( source)
- debug_zval_dump: documentation ( source)
<?php
class fakePDO {
}
class DatabaseConnection {
protected $connection;
public function __construct() {
$connection = new fakePDO();
}
public function __destruct() {
unset($this->connection);
}
}
class Database {
static $connections = array();
public static function open($key) {
self::$connections[$key] = new DatabaseConnection();
}
public static function close($key) {
unset(self::$connections[$key]);
gc_collect_cycles();
}
}
Database::open('a');
Database::open('b');
Database::close('a');
debug_zval_dump(Database::$connections);