Annotation of embedaddon/php/tests/classes/destructor_and_globals.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: ZE2 accessing globals from destructor in shutdown
! 3: --FILE--
! 4: <?php
! 5: $test_cnt = 0;
! 6: $test_num = 0;
! 7:
! 8: function Show() {
! 9: global $test_cnt;
! 10: echo "Count: $test_cnt\n";
! 11: }
! 12:
! 13: class counter {
! 14: protected $id;
! 15:
! 16: public function __construct() {
! 17: global $test_cnt, $test_num;
! 18: $test_cnt++;
! 19: $this->id = $test_num++;
! 20: }
! 21:
! 22: public function Show() {
! 23: echo 'Id: '.$this->id."\n";
! 24: }
! 25:
! 26: // try protected here
! 27: public function __destruct() {
! 28: global $test_cnt;
! 29: $test_cnt--;
! 30: }
! 31:
! 32: static public function destroy(&$obj) {
! 33: $obj = NULL;
! 34: }
! 35: }
! 36: Show();
! 37: $obj1 = new counter;
! 38: $obj1->Show();
! 39: Show();
! 40: $obj2 = new counter;
! 41: $obj2->Show();
! 42: Show();
! 43: counter::destroy($obj1);
! 44: Show();
! 45: // or uncomment this line and it works
! 46: //counter::destroy($obj2);
! 47: echo "Done\n";
! 48: ?>
! 49: --EXPECT--
! 50: Count: 0
! 51: Id: 0
! 52: Count: 1
! 53: Id: 1
! 54: Count: 2
! 55: Count: 1
! 56: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>