issue_410_basic.phpt 850 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. --TEST--
  2. Test V8::executeString() : Method access from multiple derived classes
  3. --SKIPIF--
  4. <?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
  5. --FILE--
  6. <?php
  7. class BaseClass {
  8. public function bla() {
  9. printf('print bla, called class: %s' . PHP_EOL, get_called_class());
  10. }
  11. }
  12. class Foo extends BaseClass {}
  13. class Bar extends BaseClass {}
  14. $v8 = new V8Js('PHP');
  15. $v8->Foo = new Foo();
  16. $v8->Bar = new Bar();
  17. $code = <<<EOT
  18. var_dump(PHP.Foo);
  19. PHP.Foo.bla();
  20. var_dump(PHP.Bar);
  21. PHP.Bar.bla();
  22. EOT;
  23. $v8->executeString($code);
  24. ?>
  25. ===EOF===
  26. --EXPECTF--
  27. object(Foo)#%d (1) {
  28. ["bla"] =>
  29. object(Closure)#%d {
  30. function () { [native code] }
  31. }
  32. }
  33. print bla, called class: Foo
  34. object(Bar)#%d (1) {
  35. ["bla"] =>
  36. object(Closure)#%d {
  37. function () { [native code] }
  38. }
  39. }
  40. print bla, called class: Bar
  41. ===EOF===