1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- --TEST--
- Test V8::executeString() : Property visibility - enumerate
- --SKIPIF--
- <?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
- --FILE--
- <?php
- class Foo {
- private $privBar = "privBar";
- protected $protBar = "protBar";
- public $pubBar = "pubBar";
- public function dump() {
- foreach($this as $key => $value) {
- echo("$key => ");
- var_dump($value);
- }
- }
- }
- $js = new V8Js();
- $js->foo = new Foo();
- $script = <<<END
- for(var key in PHP.foo) {
- if(PHP.foo.hasOwnProperty(key)) {
- var_dump(key);
- if(key[0] === '$') {
- var_dump(PHP.foo[key]);
- }
- else {
- var_dump("function");
- }
- }
- }
- END;
- $js->executeString($script);
- echo "--- PHP ---\n";
- $js->foo->dump();
- ?>
- ===EOF===
- --EXPECT--
- string(4) "dump"
- string(8) "function"
- string(7) "$pubBar"
- string(6) "pubBar"
- --- PHP ---
- privBar => string(7) "privBar"
- protBar => string(7) "protBar"
- pubBar => string(6) "pubBar"
- ===EOF===
|