property_visibility__set.phpt 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. --TEST--
  2. Test V8::executeString() : Property visibility __set
  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 __set($name, $value) {
  12. echo "$name <- $value\n";
  13. }
  14. public function dump() {
  15. var_dump($this->privBar);
  16. var_dump($this->protBar);
  17. var_dump($this->pubBar);
  18. var_dump(isset($this->unknownBar));
  19. var_dump(isset($this->phpBar));
  20. }
  21. }
  22. $js = new V8Js();
  23. $js->foo = new Foo();
  24. $js->foo->protBar = 'piet';
  25. $js->foo->phpBar = 'phpValue';
  26. $script = <<<END
  27. PHP.foo.privBar = 'jsPriv';
  28. PHP.foo.protBar = 'jsProt';
  29. PHP.foo.pubBar = 'jsPub';
  30. PHP.foo.unknownBar = 'jsUnknown';
  31. var_dump(PHP.foo.privBar);
  32. var_dump(PHP.foo.protBar);
  33. var_dump(PHP.foo.pubBar);
  34. var_dump(PHP.foo.unknownBar);
  35. var_dump(PHP.foo.phpBar);
  36. END;
  37. $js->executeString($script);
  38. $js->foo->dump();
  39. ?>
  40. ===EOF===
  41. --EXPECT--
  42. protBar <- piet
  43. phpBar <- phpValue
  44. privBar <- jsPriv
  45. protBar <- jsProt
  46. unknownBar <- jsUnknown
  47. NULL
  48. NULL
  49. string(5) "jsPub"
  50. NULL
  51. NULL
  52. string(7) "privBar"
  53. string(7) "protBar"
  54. string(5) "jsPub"
  55. bool(false)
  56. bool(false)
  57. ===EOF===