PageRenderTime 56ms CodeModel.GetById 26ms RepoModel.GetById 0ms app.codeStats 0ms

/hphp/test/quick/recursive-isset.php

http://github.com/facebook/hiphop-php
PHP | 60 lines | 48 code | 9 blank | 3 comment | 5 complexity | b290d01ad86cd393d07977f636cc1df5 MD5 | raw file
Possible License(s): LGPL-2.1, BSD-2-Clause, BSD-3-Clause, MPL-2.0-no-copyleft-exception, MIT, LGPL-2.0, Apache-2.0
  1. <?php
  2. error_reporting(-1);
  3. //////////////////////////////////////////////////////////////////////
  4. class Foo {
  5. public function __isset($name) {
  6. var_dump($name);
  7. if ($name != 'bar')
  8. return isset($this->bar);
  9. else
  10. return true;
  11. }
  12. }
  13. function main1() {
  14. $f = new Foo;
  15. var_dump(isset($f->foo));
  16. }
  17. //////////////////////////////////////////////////////////////////////
  18. class Foo2 {
  19. public function __isset($name) {
  20. var_dump($name);
  21. return isset($this->foo);
  22. }
  23. }
  24. function main2() {
  25. $f = new Foo2;
  26. var_dump(isset($f->bar));
  27. }
  28. //////////////////////////////////////////////////////////////////////
  29. class CaseFoo {
  30. public function __isset($name) {
  31. var_dump($name);
  32. if ($name === 'bar') return isset($this->Bar);
  33. if ($name === 'Bar') return isset($this->foo);
  34. if ($name === 'foo') return isset($this->bar);
  35. var_dump("shouldn't get here");
  36. }
  37. }
  38. function main3() {
  39. $f = new CaseFoo;
  40. var_dump(isset($f->bar));
  41. }
  42. //////////////////////////////////////////////////////////////////////
  43. main1();
  44. echo "--\n";
  45. main2();
  46. echo "--\n";
  47. main3();
  48. echo "--\n";