PageRenderTime 41ms CodeModel.GetById 16ms RepoModel.GetById 1ms app.codeStats 0ms

/trunk/Examples/test-suite/php/director_finalizer_runme.php

#
PHP | 61 lines | 39 code | 19 blank | 3 comment | 1 complexity | 2de66e03dd6b755e76bb3d40295a6c34 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. <?php
  2. require "tests.php";
  3. require "director_finalizer.php";
  4. // No new functions
  5. check::functions(array(foo_orstatus,deletefoo,getstatus,launder,resetstatus));
  6. // No new classes
  7. check::classes(array(director_finalizer,Foo));
  8. // now new vars
  9. check::globals(array());
  10. class MyFoo extends Foo {
  11. function __destruct() {
  12. $this->orStatus(2);
  13. if (method_exists(parent, "__destruct")) {
  14. parent::__destruct();
  15. }
  16. }
  17. }
  18. resetStatus();
  19. $a = new MyFoo();
  20. unset($a);
  21. check::equal(getStatus(), 3, "getStatus() failed #1");
  22. resetStatus();
  23. $a = new MyFoo();
  24. launder($a);
  25. check::equal(getStatus(), 0, "getStatus() failed #2");
  26. unset($a);
  27. check::equal(getStatus(), 3, "getStatus() failed #3");
  28. resetStatus();
  29. $a = new MyFoo();
  30. $a->thisown = 0;
  31. deleteFoo($a);
  32. unset($a);
  33. check::equal(getStatus(), 3, "getStatus() failed #4");
  34. resetStatus();
  35. $a = new MyFoo();
  36. $a->thisown = 0;
  37. deleteFoo(launder($a));
  38. unset($a);
  39. check::equal(getStatus(), 3, "getStatus() failed #5");
  40. resetStatus();
  41. check::done();
  42. ?>