property_visibility-has-property.phpt 966 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. --TEST--
  2. Test V8::executeString() : Property visibility - has property
  3. --SKIPIF--
  4. <?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
  5. --FILE--
  6. <?php
  7. #[AllowDynamicProperties]
  8. class Foo {
  9. private $privBar = "privBar";
  10. protected $protBar = "protBar";
  11. public $pubBar = "pubBar";
  12. }
  13. $js = new V8Js();
  14. $js->foo = new Foo();
  15. $script = <<<END
  16. var_dump(PHP.foo.hasOwnProperty("privBar"));
  17. var_dump(PHP.foo.hasOwnProperty("protBar"));
  18. var_dump(PHP.foo.hasOwnProperty("pubBar"));
  19. var_dump(PHP.foo.hasOwnProperty("unknownBar"));
  20. PHP.foo.privBar = 23;
  21. PHP.foo.protBar = 23;
  22. PHP.foo.pubBar = 23;
  23. PHP.foo.unknownBar = 23;
  24. var_dump(PHP.foo.hasOwnProperty("privBar"));
  25. var_dump(PHP.foo.hasOwnProperty("protBar"));
  26. var_dump(PHP.foo.hasOwnProperty("pubBar"));
  27. var_dump(PHP.foo.hasOwnProperty("unknownBar"));
  28. END;
  29. $js->executeString($script);
  30. ?>
  31. ===EOF===
  32. --EXPECT--
  33. bool(false)
  34. bool(false)
  35. bool(true)
  36. bool(false)
  37. bool(true)
  38. bool(true)
  39. bool(true)
  40. bool(true)
  41. ===EOF===