property_visibility-enumerate.phpt 899 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. --TEST--
  2. Test V8::executeString() : Property visibility - enumerate
  3. --SKIPIF--
  4. <?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
  5. --FILE--
  6. <?php
  7. class Foo {
  8. private $privBar = "privBar";
  9. protected $protBar = "protBar";
  10. public $pubBar = "pubBar";
  11. public function dump() {
  12. foreach($this as $key => $value) {
  13. echo("$key => ");
  14. var_dump($value);
  15. }
  16. }
  17. }
  18. $js = new V8Js();
  19. $js->foo = new Foo();
  20. $script = <<<END
  21. for(var key in PHP.foo) {
  22. if(PHP.foo.hasOwnProperty(key)) {
  23. var_dump(key);
  24. if(key[0] === '$') {
  25. var_dump(PHP.foo[key]);
  26. }
  27. else {
  28. var_dump("function");
  29. }
  30. }
  31. }
  32. END;
  33. $js->executeString($script);
  34. echo "--- PHP ---\n";
  35. $js->foo->dump();
  36. ?>
  37. ===EOF===
  38. --EXPECT--
  39. string(4) "dump"
  40. string(8) "function"
  41. string(7) "$pubBar"
  42. string(6) "pubBar"
  43. --- PHP ---
  44. privBar => string(7) "privBar"
  45. protBar => string(7) "protBar"
  46. pubBar => string(6) "pubBar"
  47. ===EOF===