summaryrefslogtreecommitdiff
path: root/tests/classes/destructor_and_globals.phpt
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2013-03-14 05:42:27 +0000
committer <>2013-04-03 16:25:08 +0000
commitc4dd7a1a684490673e25aaf4fabec5df138854c4 (patch)
tree4d57c44caae4480efff02b90b9be86f44bf25409 /tests/classes/destructor_and_globals.phpt
downloadphp2-master.tar.gz
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'tests/classes/destructor_and_globals.phpt')
-rw-r--r--tests/classes/destructor_and_globals.phpt56
1 files changed, 56 insertions, 0 deletions
diff --git a/tests/classes/destructor_and_globals.phpt b/tests/classes/destructor_and_globals.phpt
new file mode 100644
index 0000000..9caf0f1
--- /dev/null
+++ b/tests/classes/destructor_and_globals.phpt
@@ -0,0 +1,56 @@
+--TEST--
+ZE2 accessing globals from destructor in shutdown
+--FILE--
+<?php
+$test_cnt = 0;
+$test_num = 0;
+
+function Show() {
+ global $test_cnt;
+ echo "Count: $test_cnt\n";
+}
+
+class counter {
+ protected $id;
+
+ public function __construct() {
+ global $test_cnt, $test_num;
+ $test_cnt++;
+ $this->id = $test_num++;
+ }
+
+ public function Show() {
+ echo 'Id: '.$this->id."\n";
+ }
+
+ // try protected here
+ public function __destruct() {
+ global $test_cnt;
+ $test_cnt--;
+ }
+
+ static public function destroy(&$obj) {
+ $obj = NULL;
+ }
+}
+Show();
+$obj1 = new counter;
+$obj1->Show();
+Show();
+$obj2 = new counter;
+$obj2->Show();
+Show();
+counter::destroy($obj1);
+Show();
+// or uncomment this line and it works
+//counter::destroy($obj2);
+echo "Done\n";
+?>
+--EXPECT--
+Count: 0
+Id: 0
+Count: 1
+Id: 1
+Count: 2
+Count: 1
+Done