Source

pecl-event / tests / 10-event-data-dtor.phpt

--TEST--
Check for event destructor depending on the data property value
--FILE--
<?php
class _Indicator {
	public $i;
	public function __construct($i) {
		$this->i = $i;
	}
	public function __destruct() {
		echo $this->i, "\n";
	}
}

$base = new EventBase();

$e1 = new Event($base, -1, Event::TIMEOUT, function() {
	echo "2\n";
});
$e1->addTimer(0.10);
$e2 = new Event($base, -1, Event::TIMEOUT, function() {
	echo "3\n";
});
$e2->addTimer(0.11);

// obj
$i1 = new _Indicator(1);
$e1->data = &$i1;

// obj by ref
$i2 = new _Indicator(4);
$e2->data = $i2;

echo "start\n";
$i1 = null;
$i2 = null;

$base->loop();

$e1 = null;
$e2 = null;
echo "end";
?>
--EXPECT--
start
1
2
3
4
end
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.